导出为CSV时,有没有办法保留日期格式?我有一个GWT应用程序。我的日期数据例如是03-01-2012和02-2012。成功将其导出为CSV后,当我打开CSV文件时,这些日期现在分别为3/1/2012和2/1/2012。有没有办法控制它们在CSV中的外观?我在调试之前调试并遵循代码,日期是正确的。我很感激任何帮助。
答案 0 :(得分:4)
你应该看看java.text.SimpleDateFormat
答案 1 :(得分:2)
你不能(据我所知)在CSV文件中传递元信息。因此,要查看发送方式的日期,您可以通过以下方式之一传递它(数据值在逗号之间):
,03-01-2012, ,= “2012年3月1日”,
答案 2 :(得分:0)
每当您使用日期并希望在工作时保持笑容时,请使用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);
答案 3 :(得分:0)
据我所知,使用CSV时无法控制日期在Excel中的显示方式(只能由Excel用户的设置控制)。我们遇到了类似的问题(电话号码),唯一可行的解决方法是使用Excel格式。我们使用Apache POI来编写.xls文件 [*] ,我们可以将单元格类型设置为文本。
至少对于电话号码,这是必要的 - 否则Excel会丢弃前导0,并将它们视为数字(使得无法区分国内和国际电话号码)。但是对于日期,也许值得考虑,如果最好让用户决定日期的显示方式?
[*]我们还提供下载.csv文件的警告,当用Excel打开时,这些文件并不理想。
答案 4 :(得分:0)
只需在日期值
之前使用空格即,下面的示例查询
select ' '||to_char(mydatecolumn,'YYYY-MM-DD HH:MI:SS AM') DATEVALUE from mytable;
尝试将数据导出为CSV,它会将其保存为与导出时相同的格式,因为TEXT和EXCEL会将其视为TEXT,因此不会将其更改为默认的EXCEL日期格式。