This was really helpful! I couldn't switch my particular report to Groovy though. I had to stick with Java. Java didn't like the .set and .get methods returning void so I used a different approach: To get the fiscal year start date: TODAY().getMonth() < 6 ? java.sql.Date.valueOf(Calendar.getInstance().get(Calendar.YEAR) - 1 + "-07-01") : java.sql.Date.valueOf(Calendar.getInstance().get(Calendar.YEAR) + "-07-01") To get the fiscal year end date: TODAY().getMonth() < 6 ? java.sql.Date.valueOf(Calendar.getInstance().get(Calendar.YEAR) + "-06-30") : java.sql.Date.valueOf(Calendar.getInstance().get(Calendar.YEAR) + 1 + "-06-30")