将字符串时间戳解析为 JODA 时间戳
Parsing String Timestamp as JODA TimeStamp
给定以下 UTC 时间:
2009-11-17 10:45:32
如何创建一个 org.jode.time.LocalDateTime
具有那个确切时间,但在 UTC 中?
换句话说,该时间戳表示 UTC 时间。我想用 UTC 时间在 joda
中创建一个新的 Timestamp 对象。
我尝试了以下失败:
scala> org.joda.time.LocalDateTime.parse("2009-11-17 10:45:32",
org.joda.time.format.ISODateTimeFormat.tTime)
java.lang.IllegalArgumentException: Invalid format: "2009-11-17 10:45:32"
我怀疑这里的问题只是缺少 T
值。请注意, "a LocalDateTime
[...] but in UTC" 的想法是没有意义的。 LocalDateTime
值 没有时区。
最简单的修复可能只是从模式创建 DateTimeFormatter
:
// Java code, but Scala should be similar
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = format.parseLocalDateTime(value);
您可以创建 DateTimeFormatter
一次并将其存储在静态最终变量中 - DateTimeFormatter
是线程安全的(例如,不同于 SimpleDateFormat
。)
给定以下 UTC 时间:
2009-11-17 10:45:32
如何创建一个 org.jode.time.LocalDateTime
具有那个确切时间,但在 UTC 中?
换句话说,该时间戳表示 UTC 时间。我想用 UTC 时间在 joda
中创建一个新的 Timestamp 对象。
我尝试了以下失败:
scala> org.joda.time.LocalDateTime.parse("2009-11-17 10:45:32",
org.joda.time.format.ISODateTimeFormat.tTime)
java.lang.IllegalArgumentException: Invalid format: "2009-11-17 10:45:32"
我怀疑这里的问题只是缺少 T
值。请注意, "a LocalDateTime
[...] but in UTC" 的想法是没有意义的。 LocalDateTime
值 没有时区。
最简单的修复可能只是从模式创建 DateTimeFormatter
:
// Java code, but Scala should be similar
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = format.parseLocalDateTime(value);
您可以创建 DateTimeFormatter
一次并将其存储在静态最终变量中 - DateTimeFormatter
是线程安全的(例如,不同于 SimpleDateFormat
。)