我的系统时间是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());
}
}