簡體   English   中英

如何根據系統的區域日期時間格式設置將字符串日期轉換為Date對象?

[英]How to convert string date to Date object as per the System's Regional date time format settings?

在我的項目中,例如,我正在使用Date類的對象

Date date = Date(dateInStringForm);[Though it is deprecated]

它可以與IST[Indian Standard Time]完美配合,但是當我將控制面板[Operating system : Windows7]區域和語言”中的設置更改為任何其他國家(例如,葡萄牙)時,它將拋出java.lang.IllegalArgumentException 如何使這種轉換通用?

以下是我的試用示例代碼,

導入java.util.Date;

公共類GenericDateTime {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
   //  Date date = new Date("Jan 20, 2015 3:19:52 PM"); //Indian Standard Time Format
    Date date = new Date("20/Jan/2015 15:19:51"); //Portugese Time Format
    System.out.println("Date Object Form--->>>" + date);
}

}

它與時區無關。 您提供的格式不同於Date()允許和可以解析的格式。 沒有通用的方式可以接受任何類型的日期格式,而不會在轉換之前不知道其格式

因此,要接受任何特定格式,可以使用SimpleDateFormat

     public static void main(String[] args) {

        SimpleDateFormat dateFormat= new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss");
        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        try {
            Date date = dateFormat.parse("20/Jan/2015 15:19:51");
            System.out.println(date);
        } catch (ParseException e) {

            e.printStackTrace();
        }


  }

可以使用SimpleTimeFormat而不是將日期作為String傳遞,而可以指定日期格式,並將日期字符串作為UTC時間傳遞。 如果您可以自由使用外部庫,那么Joda Time將是您的最佳選擇。

暫無
暫無

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

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