近日,把玩Google Pisaca API的时候发现返回一个这样的时间格式:
-02-13T14:15:44.000Z ,问人未果.
窃以为T,z应该是和时区有关,经过google果然这个就是传说中的UTC 通用标准时以z来标识
其它的时区显示的时间与通用协调时间不同,因此例如你能使用太平洋标准时间-12-25T06:00:00:000-8:00来显示12月25日的早上6:00(它比UTC时间滞后8小时)。
这个没法使用,得转换下.
Java代码 publicclassTimeZoneTest{publicstaticvoidmain(Stringargs[]){try{Stringts="-10-23T17:15:44.000Z";System.out.println("ts="+ts);ts=ts.replace("Z","UTC");System.out.println("ts="+ts);SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");Datedt=sdf.parse(ts);TimeZonetz=sdf.getTimeZone();Calendarc=sdf.getCalendar();System.out.println("Displayname:"+tz.getDisplayName());System.out.println(getString(c));}catch(ParseExceptionpe){System.out.println("Erroroffset:"+pe.getErrorOffset());pe.printStackTrace();}}privatestaticStringgetString(Calendarc){StringBufferresult=newStringBuffer();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));returnresult.toString();}}
运行结果:
Java代码 ts=-10-23T17:15:44.000Zts=-10-23T17:15:44.000UTCDisplayname:CoordinatedUniversalTime-10-2317:15:44