免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3672 | 回复: 5
打印 上一主题 下一主题

linux下jsp编程时间问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-08-31 14:31 |只看该作者 |倒序浏览
我现在linux系统运行jsp(tomcat)!执行以下命令显示
[root@ghome bin]# date
Sat Aug 31 14:04:35 UTC 2002
[root@ghome bin]#
但是,我在jsp中执行了一下去当前时间的代码:
   Calendar now_Time=Calendar.getInstance()&#59;
   
   int year=now_Time.get(Calendar.YEAR)&#59;
   int month=now_Time.get(Calendar.MONTH)+1&#59;
   int day=now_Time.get(Calendar.DATE)&#59;
   String Current_Date=String.valueOf(year)+(( month<10) ? &quot;0&quot;+String.valueOf(month) : String.valueOf(month) )+(( day<10) ? &quot;0&quot;+String.valueOf(day) : String.valueOf(day) )&#59;
   
   int hour=now_Time.get(Calendar.HOUR_OF_DAY )&#59;
   int minute=now_Time.get(Calendar.MINUTE)&#59;
   int second=now_Time.get(Calendar.SECOND)&#59;
   String Current_Time=((hour<10) ? &quot;0&quot;+String.valueOf(hour) : String.valueOf(hour) )+((minute<10) ? &quot;0&quot;+String.valueOf(minute) : String.valueOf(minute) )+(( second<10) ? &quot;0&quot;+String.valueOf(second) : String.valueOf(second) )&#59;
这样得出来的时间好像老是不对!好像比我们用date命令显示的时间
快几个小时!是不是时区问题
   请问是么问题?如何解决?谢谢!

论坛徽章:
0
2 [报告]
发表于 2002-08-31 14:42 |只看该作者

linux下jsp编程时间问题

明明是:
[root@ghome bin]# date -u
Sat Aug 31 14:17:35 UTC 2002
[root@ghome bin]#

但是以上程序取出来的却是
2002-08-31 22:18:08
是不是我的Calendar now_Time=Calendar.getInstance()&#59;这句话有问题?

论坛徽章:
0
3 [报告]
发表于 2002-08-31 15:29 |只看该作者

linux下jsp编程时间问题

请问:
Calendar now_Time=Calendar.getInstance()&#59;是什么意思。
  
  

论坛徽章:
0
4 [报告]
发表于 2002-09-01 00:44 |只看该作者

linux下jsp编程时间问题

[这个贴子最后由cinc在 2002/09/01 00:57am 编辑]

是时区的问题,中国在 +8 时区

getInstance() 取一个 Calender 的实例,所有的 Calendar 使用同一个对象(也只有一个)。
类似的有 Runtime 等等,使用了 Singleton 模式。

使用 GregorianCalendar 而不是 Calendar

import java.util.Calendar&#59;
import java.util.GregorianCalendar&#59;


public class Main {
    public static void main(String args[]) {
        Calendar cal = GregorianCalendar.getInstance()&#59;
        System.out.println (cal.get(Calendar.YEAR )
                            + &quot; &quot; + cal.get(Calendar.MONTH )
                            + &quot; &quot; + cal.get(Calendar.DATE )
                            + &quot; &quot; + cal.get(Calendar.HOUR_OF_DAY )
                            + &quot; &quot; + cal.get(Calendar.MINUTE )
                            + &quot; &quot; + cal.get(Calendar.SECOND ))&#59;
    }
}

论坛徽章:
0
5 [报告]
发表于 2002-09-02 08:55 |只看该作者

linux下jsp编程时间问题

还是不对!
实际情况是
[root@ghome accountapp]# date
Mon Sep  2 08:30:50 UTC 2002
[root@ghome accountapp]#

但是你的程序的运行结果是
2002 8 2 16 30 53 ,
后来我把
Calendar now_Time=Calendar.getInstance()&#59;
改成
Calendar now_Time=Calendar.getInstance( TimeZone.getTimeZone(&quot;Asia/ShangHai&quot)&#59;
就行了!
谢谢各位!

论坛徽章:
0
6 [报告]
发表于 2002-09-02 18:30 |只看该作者

linux下jsp编程时间问题

我知道乐。
如果是  LINUX 的机器,装机的时候你要设置 自己的 TimeZone 为 Asia/ShangHai
否则,你得手工在程序里设置你的 TimeZone。

试试看。;)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP