簡體   English   中英

simpledateformat解析未正確解析日期

[英]simpledateformat parse not parsing date properly

我正在嘗試將日期打印為:2013/11/20 08 30,但是在通過simpledateformat解析日期之后,它的打印方式如下:IST 2013年11月20日14:00:00星期三,這里我通過HH和MM作為08 30,但是解析后更改為14:00:00

你能建議一下嗎

public class PrintDate {

public static void main(String[] args) {
    System.out.println(getDate("2013/11/20","08","30"));


}

public static Date getDate(String date, String hour, String miniute) {

    final SimpleDateFormat displayDateTimeFormat = new SimpleDateFormat("yyyy/MM/dd HH mm");

    displayDateTimeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

    String paddedHour = hour.length() == 2 ? hour : "0" + hour;    
    int min = Integer.valueOf(miniute);
    int remainder = min % 5;
    int roundMinute = remainder > 2 ? min - remainder + 5 : min - remainder;
    String minuteStr = String.valueOf(roundMinute);
    String paddedMinuteStr = minuteStr.length() == 2 ? minuteStr : "0" + minuteStr;

    String startDateStr = date + " " + paddedHour.toUpperCase() + " " + paddedMinuteStr;

    Date startDate = null;
    try {           
        startDate = displayDateTimeFormat.parse(startDateStr);
    } catch (ParseException e) {

    }
    return startDate;

}

}

通過simpledateformat於2013年11月20日星期三14:00:00 IST解析日期后,在這里我通過了HH和MM作為08 30,但在解析后將其更改為14:00:00

是的,因為您指定要將其解析為UTC值。 但是,“ Date本身沒有時區的概念-只是時間的瞬間。 Date.toString()始終使用默認時區。

2013-11-20 08:30 UTC與IST 2013-11-20 14:00的時間相同,因此它實際上是在正確解析它-這只是Date.toString()的結果,這使您感到困惑。

如果您還想保留時區,則必須單獨進行操作-或(最好)使用Joda Time ,它是一種更好的日期/時間API,並具有DateTime類,該類表示時間中的即時時間。特定的日歷系統和時區。

只需嘗試以下代碼行即可獲取所需格式的日期-

Date date=new Date(2013-1900,10,20,8,30);              
SimpleDateFormat dateFormat = new SimpleDateFormat("yyy/MM/dd K mm");
String strFormatDate = dateFormat.format(date);               
Date dtFormatDate = dateFormat.parse(strFormatDate);
System.out.println("Formatted date in String:"+strFormatDate);
System.out.println("Formatted Date:"+dtFormatDate);

只需以K代替日期格式的HH即可。 您可以將日期設置為14 30,然后此格式也可以根據需要轉換日期。

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM