我尝试将Tics中的日期转换为UTC日期时间格式 - 'YYYY-MM-DDThh:mm:ss'
public static DateFormat getFormat() {
String systemLocale = System.getProperty("user.language"); //$NON-NLS-1$
Locale locale = new Locale(systemLocale);
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
return dateFormat;
}
public static Object getFormatedValue(Object value) {
String updated = (strValue).replaceAll(pattern, "$1"); //$NON-NLS-1$
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(Long.parseLong(updated));
return getFormat().format(new Date(calendar.getTimeInMillis()));
}
public static Object getOdataValue(Object value) throws ParseException {
DateFormat dateFormat = getFormat();
Date parse = dateFormat.parse(value.toString());
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(parse.getTime());
return "\"/Date(" + calendar.getTimeInMillis() + ")/\""; //$NON-NLS-1$ //$NON-NLS-2$
}
我以UTC为例得到dtae时间结果的问题 -
1393358368000 =星期二,2014年2月25日19:59:28 GMT
您的时区:2/25/2014 9:59:28 PM GMT + 2
此代码的结果是2/25/2014 21:59:28 PM
如何在没有时区的情况下获得结果?在这种情况下,我希望结果将是,即格林威治标准时间2014年2月25日19:59:28 我可以勾选并使用UTC获得不同的结果吗?
答案 0 :(得分:2)
你所要求的并不完全清楚,但如果你想要的是DateFormat
使用UTC,那很简单:
public static DateFormat getFormat() {
String systemLocale = System.getProperty("user.language"); //$NON-NLS-1$
Locale locale = new Locale(systemLocale);
DateFormat dateFormat = DateFormat.getDateTimeInstance(
DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
dateFormat.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
return dateFormat;
}
(顺便说一下,你没有使用Locale.getDefault()
作为默认语言环境的原因吗?或让DateFormat
自己选择它?)
另请注意,您完全没有任何理由创建日历。您的getFormattedValue
和getOdataValue
方法可以简化为:
public static Object getFormattedValue(Object value) {
String updated = (strValue).replaceAll(pattern, "$1"); //$NON-NLS-1$
long millis = Long.parseLong(updated);
return getFormat().format(new Date(millis));
}
public static Object getOdataValue(Object value) throws ParseException {
DateFormat dateFormat = getFormat();
Date parsedDate = dateFormat.parse(value.toString());
return "\"/Date(" + date.getTime() + ")/\""; //$NON-NLS-1$ //$NON-NLS-2$
}