近日,把玩Google Pisaca API的时候发现返回一个这样的时间格式:
2008-02-13T14:15:44.000Z ,问人未果.
窃以为T,z应该是和时区有关,经过google果然这个就是传说中的UTC 通用标准时以z来标识
其它的时区显示的时间与通用协调时间不同,因此例如你能使用太平洋标准时间2007-12-25T06:00:00:000-8:00来显示2007年12月25日的早上6:00(它比UTC时间滞后8小时)。
这个没法使用,得转换下.
运行结果:
2008-02-13T14:15:44.000Z ,问人未果.
窃以为T,z应该是和时区有关,经过google果然这个就是传说中的UTC 通用标准时以z来标识
其它的时区显示的时间与通用协调时间不同,因此例如你能使用太平洋标准时间2007-12-25T06:00:00:000-8:00来显示2007年12月25日的早上6:00(它比UTC时间滞后8小时)。
这个没法使用,得转换下.
- public class TimeZoneTest
- {
- public static void main (String args[])
- {
- try
- {
- String ts = "2007-10-23T17:15:44.000Z";
- System.out.println("ts = " + ts);
- ts = ts.replace("Z", " UTC");
- System.out.println("ts = " + ts);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
- Date dt = sdf.parse(ts);
- TimeZone tz = sdf.getTimeZone();
- Calendar c = sdf.getCalendar();
- System.out.println("Display name: " +
- tz.getDisplayName());
- System.out.println(getString(c));
- }
- catch(ParseException pe)
- {
- System.out.println("Error offset: " + pe.getErrorOffset());
- pe.printStackTrace();
- }
- }
- private static String getString(Calendar c)
- {
- StringBuffer result = new StringBuffer();
- result.append(c.get(Calendar.YEAR));
- result.append("-");
- result.append((c.get(Calendar.MONTH) + 1));
- result.append("-");
- result.append(c.get(Calendar.DAY_OF_MONTH));
- result.append(" ");
- result.append(c.get(Calendar.HOUR_OF_DAY));
- result.append(":");
- result.append(c.get(Calendar.MINUTE));
- result.append(":");
- result.append(c.get(Calendar.SECOND));
- return result.toString();
- }
- }
运行结果:
- ts = 2007-10-23T17:15:44.000Z
- ts = 2007-10-23T17:15:44.000 UTC
- Display name: Coordinated Universal Time
- 2007-10-23 17:15:44