Date的一个奇怪问题

qq77504166 2008-09-23 05:39:20
public static void main(String[] args)
{
Date d = new Date();
System.out.println(d);
}
请问如上代码打印出来的时间,怎么和实际时间差八个小时?我系统设置的时间是东八区,中国时间,这是怎么回事呢?谢谢
...全文
1255 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxyd000 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wp500 的回复:]
这个问题我遇到过, 解决办法, 你可以修改你的时区, 在电脑里的时间设置里面, 随便选择一个时区, 修改后你的电脑时间会变成相应时区的时间。 之后运行程序会发现显示时间和你调整时区后的时间一样。 之后你在换回北京时区, 就是东八区, 在运行程序就没有问题了
[/Quote]
我试过了 没解决。
zxyvb 2008-09-24
  • 打赏
  • 举报
回复
与你的机器有关,程序没有问题
  • 打赏
  • 举报
回复
看看注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 的内容

  • 打赏
  • 举报
回复
你运行一下下面的代码,看看输出是什么。

public class Test1 {

public static void main(String[] args) {
String zone = System.getProperty("user.timezone");
System.out.println("User Timezone: " + zone);
}
}


一般来说 user.timezone 的属性是空的。如果用 Date 输出的时间不对,
这个属性可能会是 GMT。

这个问题在 CSDN 上碰到有多人问过,我没有碰到过具体的原因不是
很情楚,估计与操作系统底层有关,或者重新安装 JDK 再试试看。
liudashao 2008-09-24
  • 打赏
  • 举报
回复
你换台机器运行一下
youthzone 2008-09-24
  • 打赏
  • 举报
回复
刚刚测试过。。打印出来是当前时间啊
少龙123 2008-09-24
  • 打赏
  • 举报
回复
打印的绝对是你的系统时间
linyu1247 2008-09-24
  • 打赏
  • 举报
回复
注册表有问题 我以前也碰到过
wp500 2008-09-24
  • 打赏
  • 举报
回复
这个问题我遇到过, 解决办法, 你可以修改你的时区, 在电脑里的时间设置里面, 随便选择一个时区, 修改后你的电脑时间会变成相应时区的时间。 之后运行程序会发现显示时间和你调整时区后的时间一样。 之后你在换回北京时区, 就是东八区, 在运行程序就没有问题了
懒萝卜 2008-09-23
  • 打赏
  • 举报
回复
不会吧。

好像会自己提取系统的属性呢。
Locale
doc123 2008-09-23
  • 打赏
  • 举报
回复
没见过这种问题,按第一感觉猜想可能是你机子时间出现问题了
sinsuo 2008-09-23
  • 打赏
  • 举报
回复
import java.util.Date;


public class fsfd {
public static void main(String[] args)
{
Date d = new Date();
System.out.println(d);
}

}

怎么可能出现你说的那种啊..
For_suzhen 2008-09-23
  • 打赏
  • 举报
回复
没见过这种情况。
Tonkey520 2008-09-23
  • 打赏
  • 举报
回复
你需要安装一下东西来修改一下你的注册表,因为你的注册表的问题所以才会出现你说的那种情况
awucs220 2008-09-23
  • 打赏
  • 举报
回复
你用以下代码再次打印看一啦

Date d = new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(df.format(d));
commanager 2008-09-23
  • 打赏
  • 举报
回复
不会吧,是不是你的机器时间不准呢!
njnuxln 2008-09-23
  • 打赏
  • 举报
回复
看看你自己電腦的顯示時間。
dou_ye 2008-09-23
  • 打赏
  • 举报
回复
不会的。
awucs220 2008-09-23
  • 打赏
  • 举报
回复
怎么可能啊
liaoyi_ipanel 2008-09-23
  • 打赏
  • 举报
回复
应该不会,多试几次
Date 对象属性constructor 返回对创建此对象的 Date 函数的引用。prototype 使您有能力向对象添加属性和方法。Date 对象方法getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。getFullYear() 从 Date 对象以四位数字返回年份。getHours() 返回 Date 对象的小时 (0 ~ 23)。getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。getMonth() 从 Date 对象返回月份 (0 ~ 11)。getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。getTime() 返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。getYear() 已废弃。 请使用 getFullYear() 方法代替。parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。setFullYear() 设置 Date 对象中的年份(四位数字)。setHours() 设置 Date 对象中的小时 (0 ~ 23)。setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。setMonth() 设置 Date 对象中月份 (0 ~ 11)。setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。setTime() setTime() 方法以毫秒设置 Date 对象。setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。setYear() 已废弃。请使用 setFullYear() 方法代替。toDateString() 把 Date 对象的日期部分转换为字符串。toGMTString() 已废弃。请使用 toUTCString() 方法代替。toISOString() 使用 ISO 标准返回字符串的日期格式。toJSON() 以 JSON 数据格式返回日期字符串。toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。toString() 把 Date 对象转换为字符串。toTimeString() 把 Date 对象的时间部分转换为字符串。toUTCString() 根据世界时,把 Date 对象转换为字符串。UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。valueOf() 返回 Date 对象的原始值。

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧