java - 使用 SimpleDateFormat 获取 UTC 日期

标签 java scala

我正在尝试使用 SimpleDateFormat 来解析 scala 中的日期和时间字符串。我希望创建的日期对象采用 UTC 格式,但它将其转换为我的本地时区。设置时区或日历不起作用。

scala> new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
scala> res41.parse("2014-12-12 13:12:45")
//java.util.Date = Fri Dec 12 13:12:45 IST 2014

res41.setTimeZone(java.util.TimeZone.getTimeZone("UTC")) 设置时区后(res41 是 Scala REPL 中 SimpleDateFormat 的实例)给了我相同的结果。

如果我设置Calendar,例如res41.setCalendar(cal),其中caljava.util.Calendar的实例 时区也为 UTC,不会改变结果。

我不知道我做错了什么。

最佳答案

java.time

您可以使用java.time package内置于 Java 8 。它比 java.util 类更容易使用。

import java.time.ZoneId
java.time.LocalDateTime.now()
java.time.LocalDateTime.now(ZoneId.of("GMT"))
java.time.LocalDateTime.now(ZoneId.of("Asia/Kolkata"))
java.time.LocalDateTime.now(ZoneId.of("Australia/Sydney"))

使用ZoneId ,可以获得不同时区的时间。正确使用time zone names .

乔达时间

您还可以使用Joda-Time ,特别是如果您不使用 Java 8。请参阅 DateTimeZone .

关于java - 使用 SimpleDateFormat 获取 UTC 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27835910/

相关文章:

java - 如何调用单独的类来播放声音?

Scala:列表元素的groupBy(身份)

scala - 将 DataFrame 写入 Parquet 或 Delta 似乎没有被并行化 - 耗时太长

java - 使用流递归展平列表

java - 写入文件 Java 时程序卡住

java - JVM 中有 JSR-335 特殊支持吗?提升基于 JVM 的函数式语言?

scala - 如何在单个路由中解码 POST 参数和 JSON 正文?

Scala:相当于 numpy.where()[0]

java - 动态添加类型到 jaxb 上下文

java - LDAPException(resultCode=91 (连接错误), errorMessage='尝试连接到服务器时发生错误