In the following code, I have tried in vain to set the REPORT_TIME_ZONE according to what I have able to glean from reading all the discussion in these forums. The result is the same, the JVM time zone is picked up instead of the timezone I am passing in "US/Pacific". public void writeCSVReport(Writer writer, ReportResultsDto resultDto) throws IOException, ClassNotFoundException, JRException { TimeZone timezone = resultDto.getTimezone(); FastReportBuilder reportBuilder = new FastReportBuilder(); reportBuilder.setUseFullPageWidth(false); reportBuilder.setPrintColumnNames(true); reportBuilder.setIgnorePagination(true); reportBuilder.setProperty(JRParameter.REPORT_TIME_ZONE, timezone.getID()); int index = 0; for (ReportColumnMetadataDto metadataDto : resultDto.getMetadata()) { if (metadataDto.isDisplay()) { String columnLabel = metadataDto.getLabel(); String columnClassName = metadataDto.getColumnClass(); ClasscolumnClass = Class.forName(columnClassName); System.out.println("index="+index+" label="+columnLabel+" className="+columnClassName); if (java.util.Date.class.isAssignableFrom(columnClass)) { reportBuilder.addColumn(columnLabel, String.valueOf(index), columnClassName, metadataDto.getColumnSize(), false, "MM/dd/yyyy hh:mm:ss a zzz"); } else { reportBuilder.addColumn(columnLabel, String.valueOf(index), columnClassName, metadataDto.getColumnSize()); } } index++; } DynamicReport dynamicReport = reportBuilder.build(); dynamicReport.setProperty(JRParameter.REPORT_TIME_ZONE, timezone.getID()); JRDataSource dataSource = new ReportResultsJRDataSource(resultDto); ((JRAbstractTextDataSource)dataSource).setTimeZone(timezone.getID()); JasperPrint jasperPrint = DynamicJasperHelper.generateJasperPrint(dynamicReport, new ListLayoutManager(), dataSource); jasperPrint.setTimeZoneId(timezone.getID()); System.out.println("n TIME ZONE SET TO >>>"+jasperPrint.getTimeZoneId()+"n"); JRCsvExporter exporter = new JRCsvExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, writer); exporter.exportReport(); writer.flush(); } Here is the output ... index=0 label=My First Name className=java.lang.String index=1 label=My Last Name className=java.lang.String index=2 label=Email Address className=java.lang.String index=13 label=Registration Date className=java.sql.Timestamp index=14 label=Registration Status className=java.lang.String index=15 label=Payment Status className=java.lang.String index=16 label=Payment Type className=java.lang.String TIME ZONE SET TO >>>US/Pacific My First Name,My Last Name,Email Address,Registration Date,Registration Status,Payment Status,Payment Type John,Doe,johndoe@yahoo.com,12/07/2012 04:03:52 PM EST,Registered,Not Applicable, Any idea how I get jasper or dynamic jasper to respect the time zone? Thanks in advance.