【发布时间】:2013-10-22 18:38:31
【问题描述】:
以下代码段使用 Joda-Time API 格式化并将日期转换为 UTC 时区。
DateTimeFormatter dateTimeFormatter=DateTimeFormat.forPattern("dd-MMM-yyyy hh:mm:ss aa");
DateTime dateTime = dateTimeFormatter.parseDateTime("15-Oct-2013 11:34:26 AM").withZone(DateTimeZone.UTC);
System.out.println(dateTime);
它完全按照预期显示以下日期。
2013-10-15T06:04:26.000Z
但是当这个日期像这样转换为java.sql.Timestamp时,
System.out.println(new Timestamp(dateTime.getMillis()));
它显示以下日期。
2013-10-15 11:34:26.0
这意味着与给定的日期/时间相同。时区 UTC 似乎被忽略了。
如何让Timestamp 正确地将日期转换为UTC?
【问题讨论】:
-
这并不是
TimeStamp忽略了时区,我相信它的toString方法是使用本地时区 - 需要验证。请记住,TimeStamp和Date之类的东西并不是用来显示结果的,这就是格式化程序的用途...... -
有没有办法告诉
Timestamp使用UTC 时区? converter 中需要它。我最初认为这个转换器有问题。 -
AFAIK
TimeStamp只是一个自纪元以来毫秒数的容器,它不携带任何时区详细信息
标签: java timezone timestamp jodatime utc