Java.util.date时间与系统时间不同



我的系统时间是12:23 AM,但如果我尝试使用正常的java代码显示时间;

Date dt = new Date();
System.out.println("date is "+dt);

我得到不同的时间:date is Mon Sep 05 01:23:18 BDST 2011

现在正确了吗?

Date dt = new Date();
System.out.println(DateFormat.getDateTimeInstance().format(dt));

BDST (英国双夏令时间)是您的时区(GMT +01:00)吗?

这有点复杂,但您可以这样做(显然替换您的时区):

Calendar cal = Calendar.getInstance( TimeZone.getTimeZone("America/Los_Angeles") );
Date dt = cal.getTime();
System.out.println( dt);

我没有试过,但我有一种感觉,这可能会工作!Date将始终初始化为UTC

Jdk 6有日期问题。当我安装jdk 7时问题解决了

这可能有助于…

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());
    }
}

最新更新