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

时间:2011-09-04 18:28:43

标签: java date timezone

我的系统时间是上午12:23,但如果我尝试使用普通的java代码显示时间;

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

我的时间不同了:date is Mon Sep 05 01:23:18 BDST 2011 帮助我。

4 个答案:

答案 0 :(得分:1)

现在是否正确?

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

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

答案 1 :(得分:1)

这有点令人费解,但你可以做以下事情(显然可以替换你的时区):

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

System.out.println( dt);

我没试过,但我觉得这可能会奏效! Date将始终初始化为UTC。

答案 2 :(得分:1)

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

答案 3 :(得分:-1)

这可能会有所帮助......

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