java.util.date时间与系统时间不同
我的系统时间是12:23 AM,但如果我尝试使用普通java代码显示时间java.util.date时间与系统时间不同,java,date,timezone,Java,Date,Timezone,我的系统时间是12:23 AM,但如果我尝试使用普通java代码显示时间 Date dt = new Date(); System.out.println("date is "+dt); 我得到了不同的时间:日期是2011年9月5日星期一01:23:18 BDST 帮帮我。现在正确吗 Date dt = new Date(); System.out.println(DateFormat.getDateTimeInstance().format(dt)); BDST(英国双夏时)是您的时区(G
Date dt = new Date();
System.out.println("date is "+dt);
我得到了不同的时间:日期是2011年9月5日星期一01:23:18 BDST
帮帮我。现在正确吗
Date dt = new Date();
System.out.println(DateFormat.getDateTimeInstance().format(dt));
BDST
(英国双夏时)是您的时区(GMT+01:00)?这可能有助于
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class DateUtils {
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
public static void main(String arg[]) {
System.out.println("Now : " + DateUtils.now());
}
}
这有点复杂,但您可以做以下操作(显然可以替换您的时区):
我还没试过,但我觉得这可能管用<代码>日期将始终初始化为UTC。Jdk 6的日期有问题。当我安装jdk 7时,问题已经解决。可能是时区问题?请看这里的夏令时问题我可能认为这可能是夏令时问题。我如何解决这个问题?@Diptopol Dam更新了答案。只需添加SimpleDataFormat不会更改日期的值。
Calendar cal = Calendar.getInstance( TimeZone.getTimeZone("America/Los_Angeles") );
Date dt = cal.getTime();
System.out.println( dt);