在 Android 中将“2018-02-02T06:54:57.744Z”字符串转换为日期

新手上路,请多包涵

基本上我的日期字符串是 ISO-8601 日期字符串,所以我搜索了将 ISO-8601 日期字符串转换为日期,但解决方案很长。这是详细信息。

我有一个字符串 2018-02-02T06:54:57.744Z 想将其转换为 Date 但出现错误:

 java.text.ParseException: Unparseable date: "2018-02-02T06:54:57.744Z"

我正在使用以下技术来做到这一点但没有成功:

 SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");
        parser.setTimeZone(TimeZone.getTimeZone("UTC"));
        Date parsed = parser.parse(utcDateString);
        return parsed;

我还使用以下模式 SimpleDateFormat 但没有成功:

 yyyy-MM-dd'T'HH:mm:ss.SSSZ
yyyy-MM-dd HH:mm:ss.S
yyyy-MM-dd'T'HH:mm:ssX
yyyy-MM-dd'T'HH:mm'Z'

这个问题的任何解决方案。

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

阅读 332
2 个回答

Z 是时区。您必须在日期字符串的末尾添加时区或简单地将其从格式中删除: yyyy-MM-dd'T'HH:mm:ss

带时区的正确日期字符串是这样的: 2018-02-02T06:54:57.744+0200

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

尝试这个

SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy");

Date d = null;
try
{
   d = input.parse("2018-02-02T06:54:57.744Z");
}
catch (ParseException e)
{
   e.printStackTrace();
}
String formatted = output.format(d);
Log.i("DATE", "" + formatted);

输出

在此处输入图像描述

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

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