luinstein 发表于 2012-12-13 19:53:03

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

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);//把时间转换
   %>这样又是可以的。

有感而发。
页: [1]
查看完整版本: linux java/jsp 获取系统当前时间问题