`
joeblow
  • 浏览: 177844 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

本地时间(北京时间)和“GMT+8”时区时间的区别?

    博客分类:
  • Java
阅读更多
获取本地时间:
String time1 = new SimpleDateFormat("hh:mm:ss").format(new Date());


获取时区“GMT+8”的时间:
String time2 = cal.get(Calendar.HOUR_OF_DAY) + ":" + Calendar.MINUTE + ":" + Calendar.SECOND;


如果“GMT+8”就是北京时间,为什么time1和time2又不相等呢?

下面附上测试代码和测试结果:
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT+8"));
String time1 = new SimpleDateFormat("hh:mm:ss").format(new Date());
String time2 = cal.get(Calendar.HOUR_OF_DAY) + ":" + Calendar.MINUTE + ":" + Calendar.SECOND;
System.out.println("time1=" + time1);
System.out.println("time2=" + time2);

time1=10:54:55
time2=10:12:13


今天查明原因了,上面代码第三行有错误,应该是:
String time2 = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND);

另外,要求已知时区的时间,应该像下面这样:
public static String getLocalDatetimeString(String local) {
	Calendar cal = new GregorianCalendar(TimeZone.getTimeZone(local));
	cal.setTimeInMillis(Calendar.getInstance().getTimeInMillis());
	String date = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.DAY_OF_MONTH);
	String time = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND);
	return date + " " + time;
}

这样调用:
getLocalDatetimeString("GMT+8");




分享到:
评论
1 楼 h819 2009-06-21  
关注一下,也遇到了同样的问题

相关推荐

    html页面显示北京时间时分秒

    在网页设计中,显示实时的北京时间(即中国标准时间GMT+8)是常见的需求,尤其对于国内用户来说,这样的功能可以方便他们无需手动调整时区就能看到准确的时间。本篇文章将详细讲解如何使用JavaScript实现这一功能。 ...

    格林威治时间转换为北京时间

    5. **日期和时间API**:在编程中,通常会使用系统提供的日期和时间API来进行时间操作,如获取当前时间、设置时区、进行时间转换等。对于Windows平台,可以使用`GetSystemTimeAsFileTime`和`FileTimeToSystemTime`等...

    UTC时间戳与北京时间转换C源码

    在UTC和北京时间的转换中,关键在于理解时区差异。由于北京位于东八区,所以要将UTC时间转换为北京时间,只需在UTC时间戳基础上加8小时;反之,若要将北京时间转换为UTC,需减去8小时。 下面是一个简单的C语言源码...

    UTC时间与北京时间的关系

    北京位于东八区,意味着它的本地时间比UTC快8小时。例如,如果在北京发送一封电子邮件,Date域显示"09:45:28 +0800",这表明邮件是在当地时间为2010年6月13日早上9点45分28秒发出的。将此时间转换为UTC,我们需要...

    UTC时间与北京时间差多久

    【北京时间】指的是中国所在的东八区的本地时间,比UTC时间快8小时。在电子邮件的Date域中,会以+0800表示,意味着如果邮件发送时间是+0800,即表明该邮件是在东八区时间发出的。 【时区转换】全球被划分为24个时区...

    标准时间UTC相互转换工具

    1. 时间和日期类的使用:在C#中,DateTime类用于表示日期和时间,TimeZoneInfo类则用于处理不同时区之间的转换。 2. UTC时间的处理:了解UTC时间的概念,以及如何在C#中进行UTC时间的计算和格式化。 3. 用户界面设计...

    android-获取网络时间、获取特定时区时间、时间同步的方法

    然后调用`getLocalDatetimeString("GMT+8")`即可获取指定时区的本地时间。 对于这三个方法,可以在`main`方法中进行测试,以便验证它们的功能。在`TimeTest`类中,可以添加`method1()`, `method2()`, 和 `method3()...

    查找,添加,删除时区问题

    例如,北京位于东八区,比格林尼治早8小时,所以北京的时区为GMT+8。 在建立多时区应用时,需要考虑的关键点包括: 1. **数据存储**:系统需要存储每个时区的信息,包括时区名称、偏移量、缩写等。这通常通过...

    GPS UTC时间转换函数

    例如,在Python中,你可以使用`datetime`模块来处理日期和时间,`pytz`库来处理时区转换,或者`gpsd`库来获取GPS数据。 总结一下,GPS UTC时间转换函数是IT领域中用于处理和转换全球定位系统时间的工具,它涉及到...

    如何修改SQL Azure数据库时区1

    这将返回当前的本地日期和时间,基于默认的时区差(此处为8小时)。 但是,如果你的数据库中有许多已经使用`GETDATE()`函数的地方,你需要找到并替换这些地方。`GETDATE()`函数返回的是服务器的当前UTC时间。你可以...

    PHP跨时区(UTC时间)应用解决方案

    在JavaScript中,可以使用`getFullYear()`, `getMonth()`, `getDate()`, `getHours()`, `getMinutes()`, `getSeconds()`等方法获取日期和时间部分,并通过`preZero()`函数补零以保持两位数格式。 8. **异常处理**:...

    UTC时间转换源码

    1. **解析时间戳**:根据给定的长整型数值,将其转化为一个日期和时间对象。这通常涉及到对时间戳的数学运算,例如在Python中,可以使用`datetime.datetime.fromtimestamp()`函数。 2. **处理时区差异**:UTC时间是...

    MongoDB存储时间时差问题的解决方法

    例如,对于在中国使用北京时间(GMT+08:00)的用户,从数据库读取时间会发现比实际时间少8个小时。为了解决这个问题,我们可以采取一些策略在存储和读取时间时进行时区转换。 首先,了解关键概念——格林威治时间...

    Log4j 配置日志打印时区的实现方法

    在上面的配置中,`%date{yyyy-MM-dd HH:mm:ss.SSS}{GMT+8}` 是关键部分,用于指定日期时间的格式和时区。`{yyyy-MM-dd HH:mm:ss.SSS}` 表示日期时间的格式,其中 `yyyy` 代表四位年份,`MM` 代表两位月份,`dd` 代表...

    黑苹果时间同步

    安装过Mac系统后如果与windows双系统的话,那么由于Mac...所以如果你在MacOSX和Windows都选北京时间作为本地时区是,一旦连到互联网上,同步过时间后,就会造成时间的不一致。这软件就是用来同步mac与Windows系统的时间

    日历时间转换为格林威治时间,格林威治时间转换为日历时间

    日历时间,通常指的是我们日常生活中使用的日期和时间,比如“2023年4月15日14时30分”。这种格式便于人类理解,但计算机处理时更倾向于使用统一的时间标准,例如UTC(协调世界时)。UTC是国际时间标准,它基于原子...

    time_C语言时间获取函数_

    C语言标准库提供了一些与时区相关的函数,如`tzset()`来设置时区,`timezone`和`daylight`全局变量分别表示本地时间与UTC之间的偏移秒数和是否夏令时。 7. **获取北京时间**: 要获取准确的北京时间,除了上述基本...

    C/C++标准库之转换UTC时间到local本地时间详解

    例如,美国东部时间比UTC慢5小时,而中国北京则快8小时。 在C/C++中,我们可以使用`<ctime>`头文件中的函数来处理时间。例如,`gmtime()`函数用于将Unix时间戳转换为UTC结构,而`localtime()`函数则将Unix时间戳...

    Mac双系统时间不对怎么办.docx

    因此,如果用户在 MacOSX 和 Windows 都选北京时间作为本地时区,一旦连到互联网上,同步过时间后,就会造成时间的不一致。 解决方法是修改 Windows 的注册表,将 Windows 的缺省对待 CMOS 的方式改成 UTC,也就是...

Global site tag (gtag.js) - Google Analytics