英文语言环境下,new Date()时间错误

在英文环境下工作,系统语言设置为英文,用最简单的方式获取系统时间错误

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

System.out.println(sdf.format(new Date()));
英文语言环境下,new Date()时间错误
 猜测是JVM时区设置有问题

打印所有系统参数

Properties pro=System.getProperties();

for(Iterator it=pro.entrySet().iterator();it.hasNext();){

Map.Entry entry=(Map.Entry)it.next();

System.out.println(entry.getKey()+":"+entry.getValue());

}

发现user.timezone:

添加run arguments如下
英文语言环境下,new Date()时间错误


 显示时间正常,在命令行下运行

 

java -Duser.timezone="Asia/Shanghai" TimeTest