系统时间问题,怎么就设置不对呢?

问题描述

大家帮帮忙啊,我在做日志的时候,取出系统时间,但是时间总比本机显示时间早8个小时。想到是不是默认时区有问题,随后写方法修改默认时区,代码如下:publicstaticvoidmain(String[]args){TimeZonetz=TimeZone.getTimeZone("ETC/GMT-8");TimeZone.setDefault(tz);}

运行依旧不对,查看系统信息:publicstaticvoidmain(String[]args){Propertiesprops=System.getProperties();Iteratoriter=props.keySet().iterator();while(iter.hasNext()){Stringkey=(String)iter.next();System.out.println(key+"="+props.get(key));}}

信息显示:user.timezone=这是怎么回事啊??高手帮忙解答下吧!谢谢大家了!环境:win7旗舰+tomcat5.5+JDK1.5开发机:thinkpadT410环境变量设置没有问题,java,javac,java-version命令正常显示

解决方案

本帖最后由 marszhc 于 2010-12-02 12:03:12 编辑
解决方案二:
这个真没有遇见过
解决方案三:
引用楼主marszhc的回复:

大家帮帮忙啊,我在做日志的时候,取出系统时间,但是时间总比本机显示时间早8个小时。想到是不是默认时区有问题,随后写方法修改默认时区,代码如下:

默认时区对Date对象没有影响。这个就看日志打印的时候是怎么打印的了,直接打Date则你的努力是白费的。得从日志那边的配置下手。
解决方案四:
toLocal方法
解决方案五:
TimeZonechina=TimeZone.getTimeZone("GMT+08:00");Calendarcal=Calendar.getInstance(china);System.out.println("北京时间"+cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DAY_OF_MONTH)+""+Calendar.HOUR_OF_DAY+":"+Calendar.MINUTE+":"+cal.get(Calendar.SECOND));

为什么不用date,用区偏移量来算时间?
解决方案六:
这个是我取出当前时间的方法,看看有问题吗?Calendarcalendar=Calendar.getInstance();StringNowYear=Integer.toString(calendar.get(Calendar.YEAR));StringNowMonth=Integer.toString((calendar.get(Calendar.MONTH)+1));StringNowDay=Integer.toString(calendar.get(Calendar.DAY_OF_MONTH));StringNowHour=Integer.toString(calendar.get(Calendar.HOUR_OF_DAY));StringNowMinute=Integer.toString(calendar.get(Calendar.MINUTE));StringNowDate=NowYear+"-"+(NowMonth.length()==1?"0"+NowMonth:NowMonth)+"-"+(NowDay.length()==1?"0"+NowDay:NowDay)+""+(NowHour.length()==1?"0"+NowHour:NowHour)+":"+(NowMinute.length()==1?"0"+NowMinute:NowMinute);returnNowDate;

解决方案七:
引用5楼marszhc的回复:

这个是我取出当前时间的方法,看看有问题吗?JavacodeCalendarcalendar=Calendar.getInstance();StringNowYear=Integer.toString(calendar.get(Calendar.YEAR));StringNowMonth=Integer.toString((cale……

你这个代码对TimeZone.setDefault是敏感的,是不是可以注意这几点:1.将调整TimeZone的代码直接加到这边2.你说的早8个小时是什么意思,是不是要改成GMT/GMT-8等?试试看?
解决方案八:
为什么我运行是正确的呢
解决方案九:
如果是jdk1.5的话,那用java-version看一下java的版本号,根据Sun提供的资料,对应于Windows系统,JDK1.5最小的版本号:Windows7,Windows2008R2,WindowsVistaSP2,Windows2008SP2需要1.5.0_21及以后版本Windows2008需要1.5.0_19及以后版本WindowsVista需要1.5.0_14及以后版本JDK1.6系统支持最小的版本号Windows7需要1.6.0_14及以后版本WindowsServer2008R2需要1.6.0_16及以后版本你检查一下JDK的版本,JDK5的输出结果必须是大于等于1.5.0_21的。如果不是的话,重新安装最新版本的JDK
解决方案十:
否则的话读取操作系统的时区会有问题。
解决方案十一:
楼主你走运了,我也遇到过这种问题,网上查过没有什么好的答案,后来发现是自己修改过电脑的时间的那个时间分隔符我该成了“是SB”然后和同学聊天,就会显示xxx是SB+当前时间(正常情况是xxx+时间)+聊天内容当时纯属恶搞后来把那个该了就好了lz试一试把
解决方案十二:
staticvoidgetTime(){TimeZonetz=TimeZone.getDefault();Calendarcal=Calendar.getInstance(tz,Locale.CHINA);intyear=cal.get(Calendar.YEAR);intmonth=cal.get(Calendar.MONTH);intdate=cal.get(Calendar.DAY_OF_MONTH);intweek=cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);intweekday=cal.get(Calendar.DAY_OF_WEEK);inthour=cal.get(Calendar.HOUR_OF_DAY);intminute=cal.get(Calendar.MINUTE);intsecond=cal.get(Calendar.SECOND);StringnowTime=year+"年"+(month+1)+"月"+(date)+"日"+"第"+week+"个星期"+"周"+(weekday-1)+"时间:"+hour+"-"+minute+"-"+second;System.out.println(nowTime);}

楼主试验下?
解决方案十三:
不用default的解决中国北京的GMT应该是TimeZonetz=TimeZone.getTimeZone("GMT+8");Calendarcal=Calendar.getInstance(tz,Locale.CHINA);

时间: 2024-12-22 18:21:21

系统时间问题,怎么就设置不对呢?的相关文章

设置组策略 禁止他人修改系统时间

问:我的系统是Windows Server 2003,上面安装有几个对系统时间十分敏感的软件,如果系统时间不 对,就会导致软件出现问题.为了避免他人误改系统时间,我想禁止修改系统时间,请问怎么做? 答:可以,单击"开始"菜单→"运行"输入"gpedit.msc" 打开"组策略编辑器",在左侧窗格依次单击"计算机配置 "→"Windows设置"→"安全设置"→"

suse linux 10系统时间跑偏问题解析

在suse linux 10上部署WAS应用和搭建ORACLE RAC集群时,经常会碰到因系统时间不准而导致WAS不正常和RAC节点宕机问题,解决系统时间跑偏的问题,大家会很自然的想到NTP和CRONTAB.下面针对这个问题来具体说说suse linux 10系统时间跑偏问题. 一.现象         经过观察,你会发现在安装系统后第一次设置正确系统时间后,没设置定时校准的情况下,它的系统时间一小时会偏差有4-6分钟左右,一天下来通常会偏差50分钟左右.这在生产环境下肯定会出问题. 二.NTP

字段类型为date,设置将当前的系统时间存入库中,但是存到库中的值 日期对,时间不对

问题描述 字段类型为date,设置将当前的系统时间存入库中,但是存到库中的值 日期对,时间不对在后台用这个给时间字段赋值Date curDate = new Date(System.currentTimeMillis());//获取当前时间 dto.setCreateTime(curDate);字段值:Thu Nov 03 13:34:46 CST 2011数据库中的值03-11月-11 12:00 :00 解决方案 存入数据库如果是当前时间的话,最好用数据库自带的函数,比如mysql就是sys

.net中设置系统时间

回复人: acptvb(微软全球技术中心 VB技术支持) ( ) 感谢您使用微软产品. .NET并没有提供可以修改系统时间的名字空间(namespace),您可以通过Win32 API的SetSystemTime API函数来设置系统时间: using System;using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential)]public struct SystemTime{ public ushort w

Linux系统时间怎么设置

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟.系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置.当Linux启动时,硬件时钟会去读取系统时钟的 设置,然后系统时钟就会独立于硬件运作. Linux 中的所有命令(包括函数)都是采用的系统时钟设置.在Linux中,用于时钟查看和设置的命令主要有date.hwclock和clock.其 中,clock和hwclo

win7系统时间怎么调总是不对如何解决?

win7系统时间怎么调总是不对如何解决?   一.电脑时间总是不对的原因 1.可能是CMOS电池没电了,请更换电池. 2.如果电池是新换的或更换没有多少时间,可能是CMOS电池接触不良引起的,如果是,在接触点塞进一小片铜片. 3.BIOS的时间没有保存或保存了,但没有生效.如果是这样,CMOS电路有问题,包括主板相关电路和保存BIOS程序的CMOS有质量问题.如果是主板电路有问题建议返修. 4.如果是病毒引起的请查杀建议你下载恶意软件和木马强杀工具windows清理助手查杀恶意软件和木马. 二.

Linux系统时间设置

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟.系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置.当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作. Linux 中的所有命令(包括函数)都是采用的系统时钟设置.在Linux中,用于时钟查看和设置的命令主要有date.hwclock和clock.其 中,clock和hwcloc

linux 的date命令及系统时间设置

  Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟.系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置.当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作. Linux中的所有命令(包括函数)都是采用的系统时钟设置.在Linux中,用于时钟查看和设置的命令主要有date.hwclock. 1.date 名称 : date 使用权

Mac双系统时间不对怎么办

  Mac双系统时间不对怎么办呢?有很多人装了Mac和Windows的双系统之后会发现进入苹果后,再重启进Windows就会出现时间不同步的问题,Windows下的时间比Mac下晚8小时,那么这个问题该怎么解决呢?小编为大家带来一个有效的解决办法. 原因: Windows和MacOSX缺省看待PC的CMOS记录的时钟是不一样的. Windows将这个时钟作为本地时间来看待,也就是CMOS时间就是北京时间. MacOSX将这个时钟作为Coordinated Universal Time (UTC)