2017-04-15 127 views
-1

我以GMT格式获取字符串时间格式,如下所示:“2000-01-01T12:00:00.000Z”,我想将其转换为可读的日期/时间格式。我不知道该怎么办呢Android将GMT转换为当前本地时间

我用下面的代码,但它似乎并不工作

 schedules = matrix.get("schedules").getAsJsonArray(); 
     schedules_array = schedules.get(0).getAsJsonObject(); 
     final String open = schedules_array.get("open").getAsString(); 

     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
     try { 
      Date date = format.parse(open); 
      Log.d("OPEN", String.valueOf(date)); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

请在发布之前先搜索Stack Overflow。这个话题已经有很多次了。此外,您正在使用现在由java.time类取代的麻烦遗留类。查看适用于Android的ThreeTenABP项目。 –

回答

2

首先,由于您的输入有毫秒,固定格式字符串:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 

然后你有两种选择:

  1. 调用之前添加以下语句:

    format.setTimeZone(TimeZone.getTimeZone("UTC")); 
    
  2. 更改为使用的时区中输入字符串格式:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); 
    

我建议的第二个。

+0

非常感谢你,这是我想要做的:) –

相关问题