黑马程序员技术交流社区

标题: 程序打印结果问题出在哪里? [打印本页]

作者: 齐连涛    时间: 2012-10-26 18:06
标题: 程序打印结果问题出在哪里?
本帖最后由 齐连涛 于 2012-10-26 18:31 编辑

import java.util.*;
import java.text.*;
class  DateDemo
{
public static void main(String[] args)
{
  Date d=new Date();
  System.out.println(d);
  //将模式封装到SimpleDateformat对象中。
  SimpleDateFormat sdf=
    new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");
  String time=sdf.format(d);
  System.out.println(time);
  
}
}
明明是晚上22:28
打印出来怎么是这种结果?
C:\Documents and Settings\Administrator\桌面>java DateDemo
Sun Oct 21 14:28:34 GMT 2012
2012年10月21日星期日 02:28:34


不是24小时制与12小时制的问题,问题是相差整整8小时,北京时间是东八区,跟本初子午线处的时间刚好差8小时,也就是我打印的是本初子午线处的时间  为什么会这样?

作者: 李润根    时间: 2012-10-26 18:26
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");

h:am/pm 中的小时数(1-12)
H:一天中的小时数(0-23)

改为以下试试:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");
作者: 齐连涛    时间: 2012-10-26 18:30
我是菜鸟 发表于 2012-10-26 18:26
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");

h:am/pm 中的小时数(1-12)  ...

改过 不是24小时制与12小时制的问题,问题是相差整整8小时,北京时间是东八区,跟本初子午线处的时间刚好差8小时,也就是我打印的是本初子午线处的时间  为什么会这样?
作者: 葛旭东    时间: 2012-10-26 18:38
本帖最后由 葛旭东 于 2012-10-26 18:43 编辑

加入Calendar类,获取时区看看!


我的电脑中编译没问题啊,显示正确!
作者: 李润根    时间: 2012-10-26 18:42
齐连涛 发表于 2012-10-26 18:30
改过 不是24小时制与12小时制的问题,问题是相差整整8小时,北京时间是东八区,跟本初子午线处的时间刚好 ...

Sun Oct 21 14:28:34 GMT 2012
2012年10月21日星期日 02:28:34

你说这个结果相差8个小时吗?还是其他?
作者: 齐连涛    时间: 2012-10-31 10:56
我是菜鸟 发表于 2012-10-26 18:42
Sun Oct 21 14:28:34 GMT 2012
2012年10月21日星期日 02:28:34

就是和实际时间相差八个小时,打印的时间比北京时间早八个小时




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2