java中显示当前时间的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:15:22
SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
sdf.applyPattern("yyyy/MM/dd_HH:mm:ss");
//

String timeStr = sdf.format(new Date());
System.out.println(timeStr);

在程序main方法中用上述代码显示当前时间,但是显示的时间要比机器时间晚13小时,一开始以为是时区的问题,在//处加了:
TimeZone zone = TimeZone.getTimeZone("GMT+8");
sdf.setTimeZone(zone);
再运行时就抛出异常???

请指教,java中该如何实现获取当前时间并显示?
To smluyi:
恩 先忽略debug和run的问题,我试过直接javac编译java运行是可以的,只是时间正不正确的问题

那么,照道理正常情况下,是不是应该不用加时区设置的代码,直接用你给的代码就能显示正确的当前时间的?
---------------------------------------------------------
果然啊..
user.timezone=America/Rio_Branco
但是然后发现,时间日期属性里的 时区选项卡 居然是空的...

难道你的机器时区是美国的?看来是了估计是机器设置有什么问题,你等会我待会在机器上运行下给你答复
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd_HH:mm:ss");
String timeStr = sdf.format(new Date());
System.out.println(timeStr)
这样应该可以,楼主你再试试,有问题补充下我再看看吧
--------------------------------------------
楼主我测试了一下,我那样写绝对没有错的,我也改了下时区没有抛异常,而且正常输出.我想是你机器问题,pc是在中国买的吗,你可以把你的异常贴出来吗.
----------------------_________________________________________
我debug次,结果是正确的,而且没抛异常
这就不太清楚了,debug结果应该是和run一样的吧,除非你debug的时候有对某一个变量自己设一个值,因为debug就是在run的某一个地方设置断点,方便查看,其实执行步骤和run没差别的-----------------------------------------------------------------------------
那么,照道理正常情况下,是不是应该不用加时区设置的代码,直接用你给的代码就能显示正确的当前时间的?
回答你这句:
楼主,是的,除非你想知道其它时区的时间,不然重来不需要设置时区的,所以感觉是你机器的时间问题,是不是你机器设置的时区有误,和你java默认的不一致
试试这句看你系统的时区设置
Properties pro=System.getProperties();
pro.list(System.out);
看看你的控制台打印的时区这是我打印出来的user.timezone=Asia/Shanghai

date类 查API 很清楚的