import java.util.*;public class T
{
public static void main(String arg[])
{
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
String TimeInfo = "现在时间是 ";
TimeInfo += cal.get(Calendar.YEAR) + "年";
TimeInfo += (cal.get(Calendar.MONTH) + 1) + "月";
TimeInfo += cal.get(Calendar.DATE) + "日,";
TimeInfo += (cal.get(Calendar.HOUR_OF_DAY)) + ": ";
TimeInfo += cal.get(Calendar.MINUTE) + ": ";
TimeInfo += cal.get(Calendar.SECOND) ;
System.out.println(TimeInfo); }
}
这段码显示出来的时间是
“现在时间是 2008年1月26日,13: 51: 0”
但是我现在是时间是21:51
不知道是为什么,搜索论坛也没有相关内容。
http://topic.csdn.net/u/20071223/23/6b786258-7534-4994-94f6-2ef6f215090e.html
就连这个帖子的代码也是同样的效果,这是为什么??有高手能告诉我吗?
Calendar cal = Calendar.getInstance(Locale.CHINA);
所以请仔细参考这句话使用默认时区和语言环境获得一个日历。返回的 Calendar 基于当前时间,使用了默认时区和默认语言环境。
但是我还是不理解。我查看了系统,时区是GMT+8,控制面板里面的语言环境也都是中国,怎么会出现这个问题,反应的应该是系统的时区是GMT+0时区吧?而且我发现我卡巴的更新时间也是错误的,有同样的问题
请问有人知道吗?能否帮我解决
System.out.println(System.getProperty("user.timezone"));
来输出的用户时区,看看是否是空值,一般来说应该为空的。再者重新安装JDK试试看。
1、 System.out.println(String.format("%tr",new Date()));
2、 Calendar c = Calendar.getInstance();
System.out.println("calendar---->"+c.getTime());
3、SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss E");
System.out.println(sdf.format(new Date()));
其实calendar最不好用了,你研究一下第三种吧,很实用的啊
解决之道:
1.备份Time Zones这一项
2.从正常的并且是相同系统的机器中导出该项,然后倒入到自己机器中