到目前为止,解析字符串似乎是错误的

时间:2013-10-18 04:01:33

标签: java android date simpledateformat

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();
}

我使用上面的Snippet来解析一个字符串到目前为止。 logcat结果是

  

TIMESTRING = 19860821130102

     

Thu Aug 21 14:01:02 GMT + 08:00 1986

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

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

在第一行之后插入

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

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

答案 2 :(得分:0)

因为hh小时内从 1到12 抓取小时数,您可以看到编码Format

试试如下:

DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String datenow="19860821130102";
Date date2 = (Date) formatter.parse(datenow);

答案 3 :(得分: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();
}