【发布时间】:2015-04-15 08:15:58
【问题描述】:
我正在尝试将日期以毫秒为单位转换为以下 ISO 8601 格式:
但我使用 SimpleDateFormat 得到以下信息:
/**
* It converts the time from long to the ISO format
*
* @param timestampMillis
* @return isoDate
*/
public String convertTimeMillisToISO8601(String timestampMillis)
{
long timeInLong= Long.parseLong(timestampMillis);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String isoDate = df.format(new java.util.Date(timeInLong));
return isoDate;
}
输出:
"ts":"2015-06-18T09:56:21+0000"
我知道我可以使用子字符串来附加额外的冒号,但是有没有更好的方法呢?
【问题讨论】:
-
您尝试
X的时区了吗? -
基于this question and answer我认为Java不支持
SimpleDateFormatstackoverflow.com/questions/2201925/… -
@Tichodroma - 是的,它打印的只是 UTC,它将打印 Z。
-
仅供参考,非常麻烦的旧日期时间类,例如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。