带时区的简单日期格式

新手上路,请多包涵

我正在尝试从 java.util.Date 格式化日期。我需要这种格式:

2016-06-10T13:38:13.687+02:00

如何正确地将其从标准日期格式转换为

May 04 09:51:52 CDT 2009

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss z", Locale.getDefault());
sdf.format(new Date());

不幸的是,这段代码没有返回值 +02:00

原文由 Algeroth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 492
2 个回答

把你的 z 变成大写

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss Z", Locale.getDefault());
    sdf.format(new Date());

结果:2016-06-10T13:53:22 +0200

原文由 SCouto 发布,翻译遵循 CC BY-SA 3.0 许可协议

根据标准 Java 文档: https ://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

获取日期和时间格式

2001-07-04T12:08:56.235-07:00

您需要使用以下字符串模式:

“yyyy-MM-dd’T’HH:mm:ss.SSSXXX”

所以用下面的代码,你可以得到你想要的:

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.getDefault());
    simpleDateFormat .format(new Date());

原文由 Shridutt Kothari 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题