2014-12-13 42 views

回答

1

嘗試......

public static Date setDate(String date) { 
    String results = date.replaceAll("^/Date\\(", ""); 

    String millisecond = results.substring(0, results.indexOf('+')); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(Long.parseLong(millisecond)); 

    String timezone = results.substring(results.indexOf('+'), results.indexOf(')')); 

    int hours = Integer.parseInt(timezone.substring(1, 3)); 
    int minutes = Integer.parseInt(timezone.substring(3)); 

    if (timezone.charAt(0) == '+') { 
     calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hours); 
     calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) + minutes); 
    } else { 
     calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - hours); 
     calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) - minutes); 
    } 
    return new Date(calendar.getTimeInMillis()); 
} 

使用方法:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    String date = setDate("/Date(928129800000+0530)/"); 
    Toast.makeText(MainActivity.this, "DATE: " + date, Toast.LENGTH_SHORT) 
      .show(); 
} 

快樂編碼...

+0

我感到驚訝,這只不過是一個長的數字。謝謝! – 2014-12-16 04:03:30

+0

你只能轉換毫秒部分,你也應該使用時區來計算時間 – 2016-05-11 09:49:09

相關問題