在我的项目中,我使用 Date
类的对象,
例如
Date date = Date(dateInStringForm);[Though it is deprecated]
它与IST[印度标准时间]
完美配合,但是当我将控制面板[操作系统:Windows7]
中的区域和语言中的设置更改为任何其他时例如,葡萄牙,那么它会抛出java.lang.IllegalArgumentException
。我们怎样才能使这种转换变得通用?
以下是我的试用示例代码,
导入java.util.Date;
公共(public)类 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();
}
}
关于java - 如何根据系统的区域日期时间格式设置将字符串日期转换为日期对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043982/