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

本文介绍了一种在JSP中正确处理系统时间的方法,通过设置正确的时区来确保时间的准确性。文章对比了在Windows和Linux环境下使用不同时区设置的影响,并给出了具体的解决方案。
1737

被折叠的 条评论
为什么被折叠?



