[英]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.