繁体   English   中英

如何在CSV导出期间保留日期格式

[英]How to retain date formatting during CSV export

导出为CSV时有没有办法保留日期格式? 我有一个GWT应用程序。 我的日期数据例如是03-01-2012和02-2012。 成功将其导出为CSV后,当我打开CSV文件时,这些日期现在分别为3/1/2012和2/1/2012。 有没有办法控制它们在CSV中的外观? 我在调试之前调试并遵循代码,日期是正确的。 我很感激任何帮助。

你应该看看java.text.SimpleDateFormat

你不能(据我所知)在CSV文件中传递元信息。 因此,要查看发送方式的日期,可以通过以下方式之一传递它(数据值在逗号之间):

,03-01-2012 ,, =“03-01-2012”,

每当你使用日期并且想在工作时保持脸上的笑容时,请使用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);

据我所知,使用CSV时无法控制日期在Excel中的显示方式(只能由Excel用户的设置控制)。 我们遇到了类似的问题(电话号码),唯一可行的解​​决方法是使用Excel格式。 我们使用Apache POI编写.xls文件[*] ,我们可以将单元格类型设置为文本。

至少对于电话号码来说,这是必要的 - 否则Excel会丢弃前导0,并将它们视为数字(使得无法区分国内和国际电话号码)。 但是对于日期,也许值得考虑,如果最好让用户决定日期的显示方式?

[*]我们还提供下载.csv文件的警告,当用Excel打开时它们并不理想。

只需在Date值之前使用空格即可

即,下面的示例查询

select ' '||to_char(mydatecolumn,'YYYY-MM-DD HH:MI:SS AM') DATEVALUE from mytable;

尝试将数据导出为CSV,它将以与导出时相同的格式保存它,因为TEXT和EXCEL会将其视为TEXT,因此不会将其更改为默认的EXCEL日期格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM