Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇日期夏时制_Java_Date - Fatal编程技术网

Java 爪哇日期夏时制

Java 爪哇日期夏时制,java,date,Java,Date,我刚刚在我的框中打印了new Date(),它总是返回与EST相对应的旧时间,但是框中的Date命令在移动到EDT后返回确切的时间,是否需要为new Date()返回确切的日期做些什么?我不需要任何其他java命令,但希望日期按预期工作,我是否遗漏了什么 谢谢试试这个: DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System

我刚刚在我的框中打印了new Date(),它总是返回与EST相对应的旧时间,但是框中的Date命令在移动到EDT后返回确切的时间,是否需要为new Date()返回确切的日期做些什么?我不需要任何其他java命令,但希望日期按预期工作,我是否遗漏了什么

谢谢

试试这个:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

Calendar.getInstance()
使用默认的
Locale
TimeZone
为您提供了一个用当前日期/时间初始化的日历对象。下面的代码对您的情况非常有用

SimpleDateFormat df = new SimpleDateFormat("dd MMM, yyyy HH:mm:ss z"); //Date format
df.setTimeZone(TimeZone.getTimeZone("EDT"));   //set Timezone
df.format(new Date());

谢谢。

你能发布你的代码吗?你说的“老时间”和“确切时间”是什么意思?EDT当前有效,因此如果它返回的是EDT,那么我会说它工作正常。马特·约翰逊,我已分别更改为EDT和EST。代码中除了System.out.println(新日期(System.currentTimeMillis());@user3487741(a)无需传递
System.currentTimeMillis()
到java.util.Date的构造函数。无参数构造函数会自动执行此操作。(b)您是否理解j.u.Date没有时区,但它的
toString
实现应用JVM的默认时区(恼人和混乱的行为)?(c)使用3个或4个字母的时区代码是一个坏习惯。它们既不是标准化的,也不是唯一的。使用。(d)你没有要求替代,但实际上,j.u.Date很糟糕。使用Joda time或java.time。