获取系统时间后,和本机时间差8小时的问题

vicepaladin 2008-06-12 04:59:17
我的代码是:
<%
java.SimpleDateFormat formatter = new java.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.util.Date currentTime = new java.util.Date();//得到当前系统时间

String str_date1 = formatter.format(currentTime); //将日期时间格式化
String str_date2 = currentTime.toString(); //将Date型日期时间转换成字符串形式

out.println(currentTime);
%>
但是输出的是比我本机时间提前8小时啊,如何能改成本机时间呢??我查看了本机的时区设置的也是对的啊~~
...全文
2671 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinbenzhou 2010-12-22
  • 打赏
  • 举报
回复
修改jdk和jre时区吧。吧GMT-8名字改为GMT
huangjie860105 2010-11-23
  • 打赏
  • 举报
回复
8楼的方法不可以呀
DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//格式化输出
TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区 这句加上,很关键。
dateFormatterChina.setTimeZone(timeZoneChina);//设置系统时区
Date curDate = new Date();//获取系统时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String Dt_Time = sdf.format(curDate);
System.out.println(Dt_Time);



现在时间是:2010-11-23 15:52:50
打印时间是:2010-11-23 07:52:50
vesselmax 2010-10-18
  • 打赏
  • 举报
回复
8楼的方法可以
wushudi 2009-05-11
  • 打赏
  • 举报
回复
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
Date date = calendar.getTime();
wushudi 2009-05-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 TRMeister 的回复:]
楼主,你这样搞一下试试。


Java code
DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//格式化输出
TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区 这句加上,很关键。
dateFormatterChina.setTimeZone(timeZoneChina);//设置系统时区
Date curDate = new Date();//获取系统时间
[/Quote]



Date curDate = new Date(); //这里获得还是当前时间,和本机系统系统还是差8个小时。
this.setDate(dateFormatterChina); //这样也有错误,如果setDate()的类型就不通过了。因为dateFormatterChina 是字符串。

hemaily 2008-06-14
  • 打赏
  • 举报
回复
第一次听说这种问题,学习了
ilrxx 2008-06-13
  • 打赏
  • 举报
回复
我晕,说调时区的.....这个类SimpleDateFormat在哪个包下面?这段能编译过吗?我记得是java.text.SimpleDateFormat吧
w111222j 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 TRMeister 的回复:]
楼主,你这样搞一下试试。


Java code
DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//格式化输出
TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区 这句加上,很关键。
dateFormatterChina.setTimeZone(timeZoneChina);//设置系统时区
Date curDate = new Date();//获取系统时间
[/Quote]

我顶你..
老紫竹 2008-06-13
  • 打赏
  • 举报
回复
按照8楼的做法,自己指定时区吧!
i_saw_you 2008-06-13
  • 打赏
  • 举报
回复
8楼的方法最好
passer_ming 2008-06-13
  • 打赏
  • 举报
回复
指定时区。。。
spring_cj 2008-06-13
  • 打赏
  • 举报
回复
tomcat启动脚本中配置jvm参数 -Duser.timezone=GMT+08
jdlsfl 2008-06-12
  • 打赏
  • 举报
回复
感觉是时区问题
把时区设置下试试看
vicepaladin 2008-06-12
  • 打赏
  • 举报
回复
好~~谢谢~~
TRMeister 2008-06-12
  • 打赏
  • 举报
回复
楼主,你这样搞一下试试。


DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//格式化输出
TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区 这句加上,很关键。
dateFormatterChina.setTimeZone(timeZoneChina);//设置系统时区
Date curDate = new Date();//获取系统时间
jastby 2008-06-12
  • 打赏
  • 举报
回复

<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>JavaWind Loading...</title>
</head>
<body>
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.util.Date currentTime = new java.util.Date();//得到当前系统时间

String str_date1 = formatter.format(currentTime); //将日期时间格式化
String str_date2 = currentTime.toString(); //将Date型日期时间转换成字符串形式

out.println("currentTime = "+currentTime + "<br/>");
out.println("str_date1 = "+str_date1+ "<br/>");
out.println("str_date2 = "+str_date2+ "<br/>");
%>
</body>
</html>


http://www.javawind.net/test.jsp
zhaoyong209 2008-06-12
  • 打赏
  • 举报
回复
时区原因?
水瘦山寒 2008-06-12
  • 打赏
  • 举报
回复
这肯定是你们电脑的问题

点开系统时间
把时区设置成北京8点
在Internet时间,勾上“自动与Internet时间服务器同步”,下拉列表选择“time.windows.com”试试


再不行,换个TOMCAT
非典型射手 2008-06-12
  • 打赏
  • 举报
回复
真是神气,本身获取的时间就应该是系统时间啊?怎么会不一样~?也许是你的系统时钟有问题...

jastby 2008-06-12
  • 打赏
  • 举报
回复
楼主 你的程序不报错了么? 我刚才调试了一下:

java.SimpleDateFormat formatter = new java.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

应该改为:

java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

结果是正确的,请看:

http://www.javawind.net/test.jsp

Thu Jun 12 17:21:55 CST 2008
加载更多回复(2)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧