【问题标题】:Get current date with format 2013-09-03T06:19:57.802Z获取格式为 2013-09-03T06:19:57.802Z 的当前日期
【发布时间】:2013-09-06 07:09:21
【问题描述】:

我真的不知道如何将我的日期格式设置为:2013-09-03T06:19:57.802Z 我正在访问一个需要我的日期格式为这种格式的 API。因此,当格式错误时,我会收到内部服务器错误。到目前为止,我已经完成了以下工作。

SimpleDateFormat ISO8601DATEFORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
Date date = new Date();
String dateToday = ISO8601DATEFORMAT.format(date);

我正在买这个。 2013-09-03T14:28:11+0800

有什么想法吗?谢谢!

【问题讨论】:

标签: java android date format date-format


【解决方案1】:

我认为你需要这样的格式

SimpleDateFormat ISO8601DATEFORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);

【讨论】:

    【解决方案2】:

    它在格式字符串中使用Z 作为时区说明符,而不是作为文字Z 字符。一种简单的方法是:

    • 将时区格式设置为UTC
    • 转义Z

    所以它看起来像这样:

    SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'",
                                                      Locale.US);
    isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = new Date();
    String dateToday = isoFormat.format(date);
    

    事实上,您需要转义Z,如果偏移量为0,那么无论如何都会使用Z 而不是+00。重要的部分是在格式化程序中设置时区。是否要转义 Z 取决于您认为哪种方法最易读。

    另一种选择是使用Joda Time,它通常是一个更简洁的日期/时间 API,并且内置了 ISO 格式:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      • 2013-08-17
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多