解决方案 »
- coreJava上一个多线程的例子
- AIX 系统下JDK1.4环境 运行JAVA进程,log4j-1.2.8 版本出错,求解决
- 求教,急急急急急急,先谢谢各位大哥大姐们!!!
- 一个简单的问题:vector
- 自己写了个类在1.4下编译,然后引用了这个类,但是在1.3下编译,是否能使用?
- 数据库连接问题
- 请教一个相当简单的问题,希望各位能帮忙一下。.
- 初到JAVA论坛,问一下低级问题。。
- 怎样用发送JAVAMAIL发送收信人是匿名地址的邮件?
- 比特币 java 报错java.net.SocketException: Unexpected end of file from server
- JAVA程序能不能编译成.exe文件啊!
- 用过Java Launcher的请进
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(d);
格式可以用SimpleDateFormat来弄,具体看api
我不是格式化的问题 我说的是 日期变化的问题
原始:Sat Dec 30 17:14:42 CST 1899
现在:Sun Dec 31 07:14:42 CST 1899
这里调用的是Date里面的parse(String s)方法,其中有一段解释:
匹配 GMT、UT 或 UTC(忽略大小写)的任何单词都认为是指 UTC。
匹配 EST、CST、MST 或 PST(忽略大小写)的任何单词都被认为是指北美的时区,该时区分别比格林威治时间晚 5、6、7 或 8 小时。匹配 EDT、CDT、MDT 或 PDT(忽略大小写)的任何单词都被识别为在夏令时期间分别指相同的时区。这里"Sat Dec 30 17:14:42 CST 1899"对应的时间比格林威治时间晚6小时,
北京时间比比格林威治时间早8小时。
由于实际上date的值为当地的时间,即北京时间,因此时间在原来的基础上加了 6+8=14小时
System.out.println(date);
过期的方法,使用的话加上时区偏移量,不加偏移量显示的是格林威治时间,你本机时区的东八区,比格林威治的少8个市区,所以+8