获取当前日期格式为2013-09-03T06:19:57.802Z

时间:2013-09-03 06:36:54

标签: java android date format date-format

我真的不知道如何将我的日期格式化为: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

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

它使用格式字符串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格式:)

答案 1 :(得分:1)

我认为你需要这样的格式

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