【问题标题】:How to format date/time in yyyy-MM-dd'T'HH:mm:ss-07:00如何在 yyyy-MM-dd'T'HH:mm:ss-07:00 中格式化日期/时间
【发布时间】: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”

我做错了什么或错过了什么?

【问题讨论】:

  • 考虑将CalendarTimeZoneSimpleDateFormat 课程扔掉。它们早已过时且设计不佳,SimpleDateFormat 特别是出了名的麻烦。相反,您可以将 ThreeTenABP 添加到您的 Android 项目中,以便使用现代 Java 日期和时间 API java.time。使用起来感觉好多了。
  • @OleV.V.您认为 ThreeTenABP 效果更好?格式化如何?

标签: android date timezone formatter


【解决方案1】:

Z 周围不需要引号

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.getDefault());// 2018-06-19T22:38:28+0000

【讨论】:

  • 好的,让我试试。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2020-08-28
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多