在WIN7下发现一些Java的程序获取系统时间比真实时间差了8个小时,怀疑是Java程序沿用了低版本的JDK,获取时间时取的GSM 0时区,而中国是GSM +8,所以查了8个小时,解决办法如下:
修改如下:
Date d = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss ");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
System.out.println(sdf.format(d));
或者:
Calendar now = Calendar.getInstance();
now.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));//important
System.out.println(now.get(Calendar.HOUR_OF_DAY));
System.out.println(now.get(Calendar.MINUTE));
System.out.println(now.get(Calendar.SECOND));
这样就可以了。
关键就是设置TimeZone: TimeZone.getTimeZone("Asia/Shanghai")
分享到:
相关推荐
解决 Java 获取时间与系统时间差 N 个小时的问题 在 Java 中获取时间时,可能会出现与系统时间相差 N 个小时的情况。这种情况通常是由于 Java 的时区设置不正确所致。下面将详细介绍解决该问题的方法。 时区设置是...
在Java编程中,获取系统时间的操作通常是通过`java.util.Date`类或`java.time`包下的类来实现的。然而,有时我们可能会遇到一个常见问题,即从Java程序中获取到的时间与实际时间相差8小时,这主要是由于时区设置不...
本文档的主要内容详细介绍的是java新日期结果与操作系统时间相差8小时处理解决方法。 最近有遇到java的时间不对的事件,现象:通过java语句获得系统时间,取得的时间总是比系统时间少8个小时,获得的总是...
果然,输出时区为"GMT",时间差8小时。那就说明是jdk1.5在win7下取不到正确的时区。 什么原因呢,为了验证我的假设,又下了最新的jdk1.6,后台打印输出正常。 问题找到了,接下来就要解决。为什么xp下能取到时区儿而...
标题中的问题涉及到Windows 7操作系统...通过上述步骤,应该能有效地解决在Windows 7下使用JDK 1.5时遇到的时间差8小时的问题。如果问题依然存在,可能需要进一步排查其他可能的原因,如网络同步设置、系统服务状态等。
在Java编程中,`new Date()` 和 `Calendar.getInstance().getTime()` 都是获取当前系统时间的方法,但有时可能会出现获取到的时间与预期不符的情况。这种问题通常与时区设置、系统时间、Java运行环境以及代码逻辑...
### 由夏令时间所引起的时间差的解决方法 在软件开发过程中,处理不同时区的时间数据时常常会遇到各种问题,尤其是涉及到夏令时调整的情况。本文将深入探讨由夏令时间变化所引起的时间差问题及其解决方案,并通过...
标题中的“关于tomcat的8小时时间差”指的是在使用Apache Tomcat服务器处理时间相关问题时,遇到的一个常见困扰:时间显示比实际慢了8小时。这个问题通常涉及到时区设置和Java运行时环境(JRE)的配置。 描述中虽然...
标题中的“关于tomcat的8小时时间差”问题主要涉及到Java和Tomcat服务器在处理时间时的时区设置。在描述中,开发者遇到了一个后台取数据时遇到的时间显示不准确的问题,具体表现为本地时间与实际时间相差8小时,即...
System类还可以用来获取系统属性,比如java.version或os.name等。 2. Runtime类与系统交互 Runtime类是Java中用于与系统底层交互的类,它同样包含许多静态方法。由于Runtime类的实例不能被创建,它采用单例模式设计...
- `getInstance()` 方法获取当前系统时间的`Calendar`实例。 ##### 2. 设置指定年份 ```java time.set(Calendar.YEAR, year); ``` **解释:** - 使用`set()`方法设置指定年份。 ##### 3. 获取某个月的最大天数 ...
- `Duration`表示两个时间点之间的时间差,以秒和纳秒为单位。 - `Period`表示两个日期之间的日期差,如年、月、日。 5. **`java.time.format.DateTimeFormatter`**: 代替`SimpleDateFormat`,`DateTimeFormatter...
此外,内容中提到的System.currentTimeMillis()是一个静态方法,返回当前时间与1970年1月1日00:00:00 GMT之间的时间差,以毫秒为单位。这个方法常用于获取当前时间戳或者作为基准时间点使用。 最后,内容还提供了一...
5. **日期和时间API**:在编程中,通常会使用系统提供的日期和时间API来进行时间操作,如获取当前时间、设置时区、进行时间转换等。对于Windows平台,可以使用`GetSystemTimeAsFileTime`和`FileTimeToSystemTime`等...
`getInstance()`会根据系统默认的区域设置返回一个`Calendar`实例,这个实例可以代表当前的日期和时间。 日历的字段包括年(YEAR)、月(MONTH)、日(DATE)、小时(HOUR_OF_DAY)、分钟(MINUTE)、秒(SECOND)...
28. **时间周期计算工具类**:如TimePeriodUtils,可以计算两个日期之间的天数、小时数等时间差。 以上工具类在实际开发中都有着广泛的应用,通过学习和理解这些源码,不仅可以提高编程效率,还能加深对Java语言...
在Windows XP系统中,Java虚拟机(JVM)是用来运行Java程序的环境,它与操作系统进行交互以获取系统时间。然而,在某些情况下,比如安装了特定的微软安全补丁后,JVM可能会显示非本地时间,而是显示为格林尼治标准...
本文主要讨论了一个IT项目经验,涉及影像服务系统的升级与内存泄漏问题的分析和解决。项目始于对旧有影像系统的改造,旧系统采用C++开发,存在总行控制能力弱、分行存储能力不足以及架构扩展性差等问题。为适应业务...
在计算机中,这通常涉及到对系统时间的访问。在Java或C#等语言中,可以使用`System.currentTimeMillis()`或`DateTime.Now`来获取当前时间。然后,通过计算与上一次更新的时间差,更新时钟的显示。 2. **多线程**:...
1. **时间处理**:如何使用Java或Kotlin的日期时间API(如Java 8的`java.time`或Kotlin的`kotlin.datetime`)来计算相对时间差。 2. **Android UI更新**:理解如何在Android应用中使用`Handler`、`Runnable`或`...