2016-03-07 30 views
3

我有什么转换W3C区改为装置时区的Android

我有一个从服务器的日期字符串,它是在W3C日期格式2016-02-13T09:53:49.871Z

我问题

当我发布信息到服务器,它显示了5个小时前,而不是刚才

我想要什么

我想要的服务器TimeZone转换为设备TimeZone,使不论区域,用户将看到他的本地时间格式

回答

2

我解决它,如果任何一个需要可以参考这种合作de

public String convertW3CTODeviceTimeZone(String strDate) throws Exception { 
     SimpleDateFormat simpleDateFormatW3C = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US); 
     simpleDateFormatW3C.setTimeZone(TimeZone.getTimeZone("GMT")); 
     Date dateServer = simpleDateFormatW3C.parse(strDate); 

     TimeZone deviceTimeZone = TimeZone.getDefault(); 
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     simpleDateFormat.setTimeZone(deviceTimeZone); 

     String formattedDate = simpleDateFormat.format(dateServer); 
     return formattedDate; 
    } 
+3

“W3C”不是有效的区域标识符。在这种情况下,你真幸运,Android会悄然回落到GMT。所以请使用“GMT”(为了正确解释输入中的尾部Z)。 –

+0

感谢您的信息:)。我编辑了anwer –

+0

2016-08-26T00:00:00 + 00:00 如何转换?具有“+00:00” – Prasad