为何Java中当前日期无法正确获取?

zhsjun 2008-03-11 01:35:37
采用Calendar类和Date类都无法得到正确的时间,比如当前机器时间为2008-03-11 13:35:30,但是当用Java获取并输出时间得到的却是:2008-03-11 05:32:40
...全文
800 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhsjun 2008-03-12
  • 打赏
  • 举报
回复
多谢个位帮助,问题已经解决,的确是时区问题,在我的机器上环境参数user.timezone=GMT,在程序中我设置其值为Asia/Shanghai即可正确显示时间了
小南瓜瓜 2008-03-12
  • 打赏
  • 举报
回复
时区问题
楼主用toLocaleString()测试一下
joynet007 2008-03-12
  • 打赏
  • 举报
回复
会不会是包引入的错了哦!!
java.util 这个包应该没有问题!
lianchen7999 2008-03-12
  • 打赏
  • 举报
回复
hog hog hog hog hog hog hog hog hog hog hog hog hog hog hog hog hog hog hog hog
JanZhen 2008-03-12
  • 打赏
  • 举报
回复
我第一次用的时候也对这个问题很困惑,后来仔细的看看书本,这个是GMT时间。我们在+8区,所应该加8。
wangweihe68 2008-03-11
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 efei 的回复:]
就是时区问题呀,正好差8个小时。

我做J2ME的,在电脑上取到的时间就是差8个小时,但是在手机上是正常的。
[/Quote]
LZ做的也是J2ME吗?感觉不象啊
efei 2008-03-11
  • 打赏
  • 举报
回复
就是时区问题呀,正好差8个小时。

我做J2ME的,在电脑上取到的时间就是差8个小时,但是在手机上是正常的。
nihuajie05 2008-03-11
  • 打赏
  • 举报
回复
时区问题吧...
zhsjun 2008-03-11
  • 打赏
  • 举报
回复
方法都用了,问题还存在,我重新安装一个JDK最新版本呢看看
  • 打赏
  • 举报
回复
没用的,要不你每次执行前比较麻烦地在最前面加一行代码:

System.setProperty("user.timezone", "");
ai7090 2008-03-11
  • 打赏
  • 举报
回复
int standardGMT = 8; // for China
String[] ids = TimeZone.getAvailableIDs(standardGMT * 60 * 60 * 1000);
SimpleTimeZone pdt = new SimpleTimeZone(standardGMT * 60 * 60 * 1000, ids[0]);
Calendar date = new GregorianCalendar(pdt);
java.util.Date trialTime = new java.util.Date();
date.setTime(trialTime);
System.out.println(date.getTime());
这样试一下
zhsjun 2008-03-11
  • 打赏
  • 举报
回复
郁闷,情况依然如此
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhsjun 的回复:]
我这里显示timezone=GMT,这应该是标准时间
[/Quote]

出来的 GMT 是标准时间,而不是中国的东8区(GMT+0800)时间或者空,正常情况下应该是空的。

而且这个系统参数是在安装时产生的,也没有办法更改(不知道是从哪里获得的),估计与你的 JDK 安装有关。
fy009 2008-03-11
  • 打赏
  • 举报
回复
这个行不
public static String getNow()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strMonth = "";
try
{
strMonth = sdf.format(new Date());
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
sdf = null;
}
return strMonth.trim();
}
输出:2008-03-11 14:12:01

zhsjun 2008-03-11
  • 打赏
  • 举报
回复
时区:GMT+8:00北京,重庆。。。
zhsjun 2008-03-11
  • 打赏
  • 举报
回复
采用CST时间相差一个小时,没有那么大
logi22 2008-03-11
  • 打赏
  • 举报
回复
机器时区设置问题
你双击右下角时间,把时区改成GMT+8
zhsjun 2008-03-11
  • 打赏
  • 举报
回复
我通过Access数据库的now函数得到的就是正确的,只有Java环境得不到正确值,用.NET也是正确的
cshuang01 2008-03-11
  • 打赏
  • 举报
回复
timezone=CST才对
zhsjun 2008-03-11
  • 打赏
  • 举报
回复
我这里显示timezone=GMT,这应该是标准时间
加载更多回复(9)

62,623

社区成员

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

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