当前位置: 代码迷 >> J2SE >> java 系统时间 异常
  详细解决方案

java 系统时间 异常

热度:120   发布时间:2016-04-24 12:46:18.0
java 系统时间 错误
代码如下:
Java code
import java.text.SimpleDateFormat;import java.util.Date;public class TestDate {    public static void main(String[] args) {          Date now=new Date();          SimpleDateFormat f=new SimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");          System.out.println(f.format(now));    }}

运行结果:
今天是2008年11月26日 星期三 02点35分
我装的XP,右下角的时间是对的。IDE是Lomboz Eclipse,总是差8个小时。
假如用Timezone的话,这个时间就是对的。
这是什么原因呢?

------解决方案--------------------
SimpleDateFormat里面要有一个重要的参数的,好像是Symbol吧,这个对象和一个TImeZone是关联的。
你取得的时间是 0时区的时间。
------解决方案--------------------
我在eclipse下是显示的正常时间,可能和ide有关系吧。
SimpleDateFormat 有方法可以设置。
f.setTimeZone(TimeZone.)
------解决方案--------------------
这个确实跟 TImeZone 有关系

Java code
public static void method1(){        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");           //sdf.setTimeZone(TimeZone.getTimeZone("GMT-8"));//加这句的话时间-16个小时           String s = sdf.format(new Date());           System.out.println(s);           //美国时间是我电脑上的时间,打印出来的是 东八区的时间         //打印出来的东西, 跟我电脑上的时间不对, 慢16个小时,难道默认的不是东8区的? 是 cst的    }
------解决方案--------------------
我设置的是中国大陆的。

你这么设的是中国大陆的?? 我的是 美国的
------解决方案--------------------
设时区就OK
------解决方案--------------------
Java code
import java.text.SimpleDateFormat;import java.util.Date;public class TestDate {    public static void main(String[] args) {          Date now=new Date();          SimpleDateFormat f=new SimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");          System.out.println(f.format(now));    }}结果:今天是2008年11月26日 星期三 13点00分结果正确.楼主用什么ide啊?eclipse应该就会了吧
------解决方案--------------------
我的结果也真确哇。。。。。。。。。。。。。
------解决方案--------------------
我的也没有问题。
------解决方案--------------------
时区是美国
------解决方案--------------------
我这也没问题,奇怪了
------解决方案--------------------
我的也没有问题啊
今天是2008年11月26日 星期三 15点03分
  相关解决方案