【发布时间】:2018-11-28 23:13:36
【问题描述】:
我很难将日期/时间格式化为包含“-07:00”作为时区。一个理想的例子是“2018-06-19T14:45:10-07:00”。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault());
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
Calendar cal= Calendar.getInstance();
String dateTime = formatter.format(cal.getTime());
这样的结果类似于
“2018-06-19T14:45:10”
。我想在它结束时有-07:00。我还尝试更改格式化程序以包含时区
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.getDefault());
这样的结果类似于
“2018-06-19T14:45:10Z”
我做错了什么或错过了什么?
【问题讨论】:
-
考虑将
Calendar、TimeZone和SimpleDateFormat课程扔掉。它们早已过时且设计不佳,SimpleDateFormat特别是出了名的麻烦。相反,您可以将 ThreeTenABP 添加到您的 Android 项目中,以便使用现代 Java 日期和时间 APIjava.time。使用起来感觉好多了。 -
@OleV.V.您认为 ThreeTenABP 效果更好?格式化如何?
标签: android date timezone formatter