【问题标题】: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 字符。一种简单的方法是:
所以它看起来像这样:
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 格式:)