Date JAVA:获取错误的当前时间
我尝试这样获取当前时间:Date JAVA:获取错误的当前时间,date,calendar,Date,Calendar,我尝试这样获取当前时间: DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); String sendingDateAndTime = dateFormat.format(cal.getTime()).trim(); 但是当我想要系统时间时,我得到了GMT时间(而不是本地时间,因为我的软件将在几个国家执行,所以我可以使用时区对象) 我
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
String sendingDateAndTime = dateFormat.format(cal.getTime()).trim();
但是当我想要系统时间时,我得到了GMT时间(而不是本地时间,因为我的软件将在几个国家执行,所以我可以使用时区对象)
我需要使用日期库和GregorianCalendar库,但我得到了相同的错误结果
很多人都有同样的问题,但我看到的所有解决方案都是在timezone对象中添加硬代码,如“Europe”或其他内容
如果有人能帮你
谢谢
----------------------------更新------------------------------------
我试图使用System.currentTimeMillis()并将其作为calendar对象的参数,但我也得到了GMT时间
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
这是本地计算机时间吗
Calendar calendar = Calendar.getInstance();
DateFormat将默认为本地时区。日历对象的内部格式是1970年1月1日格林尼治标准时间午夜后的毫秒数
编辑以添加:当我运行此代码时,我会得到我的本地时间
public static void main (String[] args) {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss z");
String sendingDateAndTime = dateFormat.format(calendar.getTime());
System.out.println(sendingDateAndTime);
}
当我运行这段代码时,我得到了GMT,尽管时区仍然是我的本地时区
public static void main (String[] args) {
Calendar calendar = Calendar.getInstance();
TimeZone timeZone = calendar.getTimeZone();
int offsetFromUTC = timeZone.getOffset(calendar.getTimeInMillis());
calendar.add(Calendar.MILLISECOND, -offsetFromUTC);
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss z");
String sendingDateAndTime = dateFormat.format(calendar.getTime());
System.out.println(sendingDateAndTime);
}
Gilbert:Calendar.getInstance()返回GMT时间,而不是系统时间。getTimeZone(“GMT”)也有相同的结果。现在当地时间是15:59,我得到12:59(格林尼治时间)非常奇怪!有人告诉我这个问题是因为Windows7,你有什么巫婆操作系统?您是否检查您的本地时间是否不是GMT时间?我使用的是Windows XP、Java 1.6,我的本地时间是GMT-4(美国东部夏时制)。我在eclipse上运行了我的代码,这是我得到的好时间。显然,这是因为Tomcat(4.1)的旧版本可能与