使用 SimpleDateFormat 获取 UTC 日期
Get Date in UTC using SimpleDateFormat
我正在尝试使用 SimpleDateFormat 来解析 Scala 中的日期和时间字符串。我希望创建的 Date 对象采用 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)
,其中 cal
是 java.util.Calendar
的一个实例,时区也为 UTC,不会更改结果。
我不确定我做错了什么。
java.time
可以使用java.time package built into 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
, it is possible to get the time for different time zones. Use proper time zone names.
乔达时间
您也可以使用 Joda-Time, especially if you are not using Java 8. See DateTimeZone
。
我正在尝试使用 SimpleDateFormat 来解析 Scala 中的日期和时间字符串。我希望创建的 Date 对象采用 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)
,其中 cal
是 java.util.Calendar
的一个实例,时区也为 UTC,不会更改结果。
我不确定我做错了什么。
java.time
可以使用java.time package built into 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
, it is possible to get the time for different time zones. Use proper time zone names.
乔达时间
您也可以使用 Joda-Time, especially if you are not using Java 8. See DateTimeZone
。