将字符串时间戳解析为 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。)