2
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 结果是

时间字符串=19860821130102

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

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

4

4 回答 4

0

你可以试试这个

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();
}
于 2013-10-18T04:47:12.537 回答
0

在第一行之后插入

DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+0800"));

您可能需要根据需要对其进行修改。

于 2013-10-18T04:21:21.013 回答
0

使用此解决方案

 String dateString = "03/26/2012 11:49:00 AM";
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
    Date convertedDate = new Date();
    try {
        convertedDate = dateFormat.parse(dateString);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println(convertedDate);
于 2013-10-18T04:10:33.903 回答
0

因为hh在 hours 从1 到 12的小时数中,您可以看到编码Format

尝试如下:

DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String datenow="19860821130102";
Date date2 = (Date) formatter.parse(datenow);
于 2013-10-18T04:39:46.377 回答