导出为CSV时是否有办法保留日期格式?我有一个GWT应用程序。我的日期数据为例如03-01-2012和02-2012。成功导出为CSV后,当我打开CSV文件时,这些日期现在分别为2012年3月1日和2012年2月1日。有没有办法控制它们在CSV中的外观?我调试并在代码被导出并且日期正确之前执行了代码。我会很感激任何帮助。如何在CSV导出期间保留日期格式
回答
据我所知,这是使用CSV时,无法控制在Excel中显示日期的方式(只能由Excel用户的设置进行控制)。我们遇到了类似的问题(电话号码),唯一可行的解决方法是使用Excel格式。我们使用Apache POI来编写.xls文件[*],我们可以在其中设置单元类型为文本。
至少对于电话号码,这是必要的 - 否则Excel会丢弃前导0,并将它们视为数字(使其无法区分国内和国际电话号码)。然而,对于日期,或许值得考虑,如果最好让用户决定如何显示日期?
[*]我们还提供下载.csv文件,警告他们用Excel打开时不理想。
注意:甚至可能在您的情况下控制日期单元格的显示样式(而不是使用文本单元格)。请参阅http://poi.apache.org/spreadsheet/quick-guide.html#CreateDateCells(但我没有测试过,所以这只是一条评论) –
是的,我之前正在和另一位程序员讨论这个问题,我们有点儿决定在这一点上,它就是这样。我看了一下你建议的Apache POI,看来只需要做更多的工作就可以完成一件小事。我只是想确定是否有更简单的方法。无论如何,非常感谢您的帮助! – jax502
你应该看看java.text.SimpleDateFormat的
'新的SimpleDateFormat(“dd-MM-yyyy”).format(theDate)'应该做你想做的事 – Jamie
我们使用com.google.gwt.i18n.client.DateTimeFormat类。例如DateTimeFormat.getFormat(“MM-dd-yyyy”)将返回一个字符串,将日期格式设置为“03-01-2012”并将其显示在应用程序的屏幕中。然后我们将该字符串与其他数据一起放入字符串缓冲区中。在这一点上,我仍然可以看到日期字符串仍然显示正确的格式。但是,当我打开CSV文件时,日期格式化为Excel所希望的。我不确定是否有办法从java中告诉Excel我想为这些日期单元格使用某种格式。 – jax502
每当你使用日期工作,并要保持笑容在你的脸上,同时工作,使用Joda Time
DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendMonthOfYear(2)
.appendDayOfYear(2).appendYear(4, 4).toFormatter();
LocalDate d = LocalDate.parse(dateStr, formatter);
Date yourJavaDate = d.toDate();
... // work with java date (if needed! :(
LocalDate outgoing = new LocalDate(yourJavaDate.getTime());
String myOutStr = outgoing.toString(formatter);
谢谢。我想我正在使用类似的东西,它的效果很好。我认为这个问题是Excel打开时的问题。 Excel中的公式栏将显示我的DateTimeFormat类生成的正确格式,但保存该日期的单元格将以不同的格式显示它。所以我不确定是否有办法通过Java应用程序告诉Excel以某种方式格式化日期。 – jax502
你不能(据我所知)在CSV文件中传递元信息。因此,要按照发送方式查看日期,可以通过以下方式之一传递它(数据值在逗号之间):
,03-01-2012, ,=“03-01- 2012" ,
日期值
即样本查询低于之前只需使用空格
select ' '||to_char(mydatecolumn,'YYYY-MM-DD HH:MI:SS AM') DATEVALUE from mytable;
尝试将数据导出为CSV,将它保存在相同的格式,因为它正在出口因为TEXT和EXCEL会将其视为TEXT,因此不会将其更改为默认的EXC EL日期格式。
- 1. PHP日期导出为CSV格式
- 2. CSV日期格式
- 3. 如何格式化一列但保留为日期时间?
- 4. 通过Python导出CSV格式的标题和日期格式
- 5. R- tapply不保留日期格式
- 6. 更改日期格式(保留“变量”)
- 7. MySQL导入CSV转换日期格式
- 8. 将日期导出为CSV
- 9. 导入CSV文件导入cockroachdb,错误日期时间格式
- 10. 日期格式在保存时出错
- 11. 日期时间格式按照日期发送CSV文件
- 12. 如何在BigQuery中导入csv日期格式uisng google appscript
- 13. 如何日期字符串转换从CSV文件导入日期格式
- 14. 从Excel导入日期时如何在Python中保留格式(mm/dd/yyyy)
- 15. 如何以日期格式在Excel中保存日期
- 16. 如何在电子邮件的xtable中保留日期/时间格式
- 17. 在R中读取CSV时,如何保持时间和日期格式相同?
- 18. 如何按天减去日期并保留格式
- 19. MS Excel:如何在导出为csv时获取更改的日期格式?
- 20. 如何在Google Apps脚本中将日期格式导出为CSV
- 21. 笨 - 导出表记录到CSV与日期格式
- 22. 从R导出data.frame后更改日期格式为.csv
- 23. 日期,时间日期格式
- 24. Matplotlib日期时间格式的日期
- 25. 日期时间格式导致错误?
- 26. 引导日期时间选择器格式化日期
- 27. 如何在回发期间保留XMLDocument?
- 28. Google Bookmark导出日期格式?
- 29. 将日期导出为Javascript格式
- 30. PostgreSQL:未知日期输出格式。如何转换日期输出格式?
1.)您使用什么程序打开CSV文件(纯文本编辑器,或者更像Excel/OpenOffice Calc)? 2.)你用什么库来编写CSV? –
1.)我默认使用Excel,这可能是大多数客户端默认使用的打开导出文件的方式。 2.)我没有使用任何类型的特殊库来写入CSV。我只是使用com.google.gwt.i18n.client.DateTimeFormat格式化日期,因为日期在应用程序中正确显示,但不在Excel中。 – jax502
不确定是否有办法从Java控制Excel的单元格格式。因为我注意到Excel中的公式栏显示了我想要的日期格式,但没有保存日期的单元格。 – jax502