SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
try {
    String timeString=new String("19860821130102");
    Log.v(TAG, "timeString=" + timeString);
    java.util.Date date = DATE_TIME_FORMAT.parse(timeString);
    Log.v(TAG, date.toString());
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}


我使用上面的代码片段来解析字符串至今。
logcat结果是


  timeString = 19860821130102
  
  1986年8月21日星期四14:01:02 GMT + 08:00


我认为小时字段应该是13,而不是14。
这让我感到困惑。
有什么帮助吗?

最佳答案

你可以试试这个

SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat Parsed_DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
try {
    String timeString=new String("19860821130102");
    Log.v(TAG, "timeString=" + timeString);

    TimeZone destTimeZone = TimeZone.getDefault();
    Log.v=(TAG, "Source TimeZone: " + destTimeZone);

    DATE_TIME_FORMAT.setTimeZone(destTimeZone);
    String convertedDateString = DATE_TIME_FORMAT.format(DATE_TIME_FORMAT.parse(timeString));
    Log.v(TAG, "ConvertedDateString: " + convertedDateString);

    java.util.Date date = Parsed_DATE_TIME_FORMAT.parse(convertedDateString, new ParsePosition(0));
    Log.v(TAG, "ConvertedTime: " + date);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

10-06 07:02