获取时间总差8个小时,为什么?请高手指点!

yqf19851101 2008-06-18 09:47:09
为什么我的时间总是差8个小时和当前时间

代码如下

<%

//取得当前系统时间
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm");
java.util.Date d = new java.util.Date();
String currenttime = df.format(d);
String startmonth4=request.getAttribute("startmonth4")==null?currenttime.substring(11,13):(String)request.getAttribute("startmonth4");
String startday4=request.getAttribute("startday4")==null?currenttime.substring(14,16):(String)request.getAttribute("startday4");

String endmonth4=request.getAttribute("endmonth4")==null?currenttime.substring(11,13):(String)request.getAttribute("endmonth4");
String endday4=request.getAttribute("endday4")==null?currenttime.substring(14,16):(String)request.getAttribute("endday4");

%>

<select name="hours" id="hours" >
<%for(int i=1;i<=24;i++){ %>
<%if(i<10){
if(startmonth4.equals("")){%>
<option value="0<%=i %>">0<%=i %></option>
<%}else {%>
<option value="0<%=i %>" <%if(startmonth4.equals("0"+i)){%> selected <%}%>>0<%=i %></option>
<% } %>
<%}else if(9<i && i<24){
if(startmonth4.equals("")){%>
<option value="<%=i %>"><%=i %></option>
<%}else {%>
<option value="<%=i %>" <%if(startmonth4.equals(""+i)){%> selected <%}%>><%=i %></option>
<% } %>
<%}else if(i==24){
if(startmonth4.equals("")){%>
<option value="00">00</option>
<%}else {%>
<option value="00" <%if(startmonth4.equals(""+i)){%> selected <%}%>>00</option>
<% } %>
<%} %>
<%} %>
</select>  点

<select name="minutes" id="minutes" >
<%for(int i=1;i<=60;i++){ %>
<%if(i<10){
if(startday4.equals("")){%>
<option value="0<%=i %>">0<%=i %></option>
<%}else {%>
<option value="0<%=i %>" <%if(startday4.equals("0"+i)){%> selected <%}%>>0<%=i %></option>
<% } %>
<%}else if(9<i && i<60){
if(startday4.equals("")){%>
<option value="<%=i %>"><%=i %></option>
<%}else {%>
<option value="<%=i %>" <%if(startday4.equals(""+i)){%> selected <%}%>><%=i %></option>
<% } %>
<%}else if(i==60){
if(startday4.equals("")){%>
<option value="00">00</option>
<%}else {%>
<option value="00" <%if(startday4.equals(""+i)){%> selected <%}%>>00</option>
<% } %>
<%} %>
<%} %>

</select>  分

...全文
1319 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
Time_Will_Tell 2012-04-28
  • 打赏
  • 举报
回复
the right

TimeZone tz = TimeZone.getDefault();
Calendar cal = Calendar.getInstance(tz, java.util.Locale.CHINA);
Date d = cal.getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String currenttime = df.format(d);
System.out.println(currenttime);
bsdance 2011-07-01
  • 打赏
  • 举报
回复
每月的最后一天 和 第一天 都会出现8小时问题
xchh1220 2008-06-18
  • 打赏
  • 举报
回复
Date now = new Date();

Calendar japanCal = new GregorianCalendar(TimeZone.getTimeZone("beijing"));
japanCal.setTimeInMillis(now.getTime());
yifuzhiming 2008-06-18
  • 打赏
  • 举报
回复
不明白你的意思,代码看不懂
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
谢了,看来不行了,我得去结贴了
wargrey 2008-06-18
  • 打赏
  • 举报
回复
你用的是什么操作系统。

我遇到的情况是在安装linux时选择了“使用UTC时钟”,多操作系统共存是总是会相差8小时,去掉这个选项就可以了,如果只有一个操作系统,看看你BIOS里的时间是不是跟你的系统时间相差8小时。把它改回来试试

解决方法自己上网查查,我不确定一定能解决你Java中的问题。
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
请教高手了!!!!!!!!!
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
19楼说的和我的一样
nicety 2008-06-18
  • 打赏
  • 举报
回复
服务器电脑时间不会和正常时间有出入吧,确认下呗!
rascalboy520 2008-06-18
  • 打赏
  • 举报
回复
我的软件运行时间为:上午02:42:27
而系统时间为:10:42
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 rascalboy520 的回复:]
如果楼主有其它机器的话,可以把你的代码放到其它机器上试一下,
同时看一下你本机上运行程序时,软件显示的当前程序执行的时间,
[/Quote]

我这儿的机子都这样,还有软件上显示的时间也是差8个小时
rascalboy520 2008-06-18
  • 打赏
  • 举报
回复
如果楼主有其它机器的话,可以把你的代码放到其它机器上试一下,
同时看一下你本机上运行程序时,软件显示的当前程序执行的时间,
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复

报这个错

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 68 in the jsp file: /business/reservations/resadd.jsp
Cannot instantiate the type Calendar
65:
66: //取得当前系统时间
67:
68: java.util.Calendar cal = new java.util.Calendar("beijing",java.util.Locale.CHINA);
69: java.util.Date date = cal.getTime();
70: java.text.SimpleDateFormat dff = new java.text.SimpleDateFormat(
71: "yyyy-MM-dd HH:mm");
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
那个地方有红波浪线

非常感谢13楼
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复



java.util.Calendar cal = new java.util.Calendar("beijing",java.util.Locale.CHINA);
youhere1 2008-06-18
  • 打赏
  • 举报
回复
报的是什么错?
贴上来看看
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 youhere1 的回复:]
Java code
java.util.Calendar cal = new java.util.Calendar("beijing",java.util.Locale.CHINA);
java.util.Date d = cal.getTime();
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm");
String currenttime = df.format(d);
[/Quote]



java.util.Calendar


这儿是错的
youhere1 2008-06-18
  • 打赏
  • 举报
回复

java.util.Calendar cal = new java.util.Calendar("beijing",java.util.Locale.CHINA);
java.util.Date d = cal.getTime();
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm");
String currenttime = df.format(d);

yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
用这个也不对


java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm",java.util.Locale.CHINA);
java.util.Date d = new java.util.Date();
String currenttime = df.format(d);
yqf19851101 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kokobox 的回复:]
因为中国是东八区

下面的代码是正确的:


Java code
java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd",java.util.Locale.US);
String day = format.format(date);
System.out.println(day);
[/Quote]


感谢5楼,但还是不对
加载更多回复(8)

81,092

社区成员

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

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