linux java/jsp 获取系统当前时间问题

来源:互联网 发布:淘宝天文望远镜 编辑:程序博客网 时间:2024/05/28 17:05

JSP源代码

 

 <%
   //获取系统时间
   //String ddate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
   TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8"); 
    TimeZone.setDefault(tz);
    java.util.Date date = new java.util.Date();//获得系统时间.
          String nowTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);//将时间格式转换成符合Timestamp要求的格式.
          //Timestamp goodsC_date = Timestamp.valueOf(nowTime);//把时间转换

   %>

 

在windows下运行可以

 

但网页传到linux:CentOS5.3下出问题

差八小时,后来查资料,

改用以下代码:

 

 <%
   //获取系统时间
   //String ddate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); 
   //TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8"); 
   TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");

    TimeZone.setDefault(tz);
    java.util.Date date = new java.util.Date();//获得系统时间.
          String nowTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);//将时间格式转换成符合Timestamp要求的格式.
          //Timestamp goodsC_date = Timestamp.valueOf(nowTime);//把时间转换

   %>

 

就正常了。

根据资料,查看

/usr/share/zoneinfo

发现,不是ETC而是Etc,故修正代码:

 <%
   //获取系统时间
   //String ddate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
   TimeZone tz = TimeZone.getTimeZone("Etc/GMT-8");
 //  TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");

    TimeZone.setDefault(tz);
    java.util.Date date = new java.util.Date();//获得系统时间.
          String nowTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);//将时间格式转换成符合Timestamp要求的格式.
          //Timestamp goodsC_date = Timestamp.valueOf(nowTime);//把时间转换

   %>

这样又是可以的。

 

有感而发。