Tag: timezone

如何改变Tomcat 7的服务器时区?

我的应用程序部署在美国洛杉矶的Debian vps中。 所以像new SimpleDateFormat(“yyyy-MM-dd HH:mm”).format(new Date())将返回America / Los Angeles的当前时间。 我可以在Tomcat的配置文件( server.xml或catalina.sh或者什么?)中进行一些设置,以便获取当前时间将返回指定的TimeZone,如GMT + 8或Asia / Taipei ???

解析DateFormat时的Java时区

我有解析日期的代码如下: String ALT_DATE_TIME_FORMAT = “yyyy-MM-dd’T’HH:mm:ss.SSSZ”; SimpleDateFormat sdf = new SimpleDateFormat( ALT_DATE_TIME_FORMAT); Date date = sdf.parse(requiredTimeStamp); 它工作正常,突然,这停止了工作。 事实certificate,管理员在服务器上进行了一些配置更改,并且日期当前正在返回为“2010-12-27T10:50:44.000-08:00”,这是上述模式无法解析的。 我有两个问题: 第一个是什么模式将以上述格式解析JVM返回的日期(具体来说,只是’-08:00’作为时区)? 第二,在Linux RHEL 5服务器上究竟会改变这样的设置,以便我们在将来意识到这些变化?

指定log4j日期的时区

是否可以指定log4j将使用的时区? 我需要日志文件中的日期与应用程序的时区不同。 log4j的PatternLayout使用SimpleDateFormat 。 不幸的是,似乎没有办法通过模式字符串控制SimpleDateFormat的时区( DateFormat有setTimeZone方法,但这没有帮助)。 我查看了log4j的源代码,并且在PatternParser.finalizeConverter中正在使用SimpleDateFormat 。 不幸的是,没有一种简单的方法来保持DateFormat来设置时区。

JDZ6中的TimeZone.setDefault更改

我只是注意到JDK 6设置默认TimeZone的方法与JDK5不同。 以前,新的默认值将存储在线程局部变量中。 使用JDK6(我刚刚查看了1.6.0.18),实现已经改变,因此如果用户可以写入“user.timezone”属性,或者如果没有安装SecurityManager,则时区会在整个VM范围内发生变化! 否则会发生线程局部更改。 我错了吗? 这似乎是一个相当大的变化,我在网上找不到任何关于它的东西。 这是JDK6代码: private static boolean hasPermission() { boolean hasPermission = true; SecurityManager sm = System.getSecurityManager(); if (sm != null) { try { sm.checkPermission(new PropertyPermission(“user.timezone”, “write”)); } catch (SecurityException e) { hasPermission = false; } } return hasPermission; } /** * Sets the TimeZone that is * returned by the […]

将日期转换为不同的时区

我正在尝试使用Java日期和日历从一个时区到另一个时区进行简单的转换。 我试图运行以下代码 Calendar instance = Calendar.getInstance(TimeZone.getTimeZone(“Europe/London”)); Date date = instance.getTime(); System.out.println(date); GregorianCalendar instance2 = new GregorianCalendar(TimeZone.getTimeZone(“Europe/Athens”)); instance2.setTime(instance.getTime()); System.out.println(instance2.getTime()); 但仍然返回相同的日期,而不是+1小时…整个问题似乎微不足道,但我找不到任何简单的答案。 在此先感谢您的帮助。

Java 8时区转换

在Java 8中,我想将日期时间从UTC转换为ACST(UTC + 9:30)。 输入 – > 2014-09-14T17:00:00 + 00:00 output-> 2014-09-15 02:30:00 String isoDateTime = “2014-09-14T17:00:00+00:00”; LocalDateTime fromIsoDate = LocalDateTime.parse(isoDateTime, DateTimeFormatter.ISO_OFFSET_DATE_TIME); ZoneOffset offset = ZoneOffset.of(“+09:30”); OffsetDateTime acst = OffsetDateTime.of(fromIsoDate, offset); System.out.println(acst.toString()); // 2014-09-14T17:00+09:30 System.out.println(acst.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)); // 2014-09-14T17:00:00+09:30 为什么没有执行偏移?

将纪元时间转换为日期

我尝试了一百万种不同的方式,但无济于事。 任何帮助将非常感激。 long millis = getMillisFromServer(); Date date = new Date(millis); DateFormat format = new SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”); format.setTimeZone(TimeZone.getTimeZone(“Australia/Sydney”)); String formatted = format.format(date); 以上不起作用。 基本上,我想要做的是,获取纪元时间并将其转换为澳大利亚时间。 我当地时间是+05.30但当然我不希望这是导致这种转换的因素。 编辑- 运行您的确切代码时的输出, epoch 1318388699000 周五10月12日08:34:59 GMT + 05:30 2011 12/10/2011 03:04:59 12/10/2011 14:04:59

在将Java Date写入SQL TIMESTAMP列之前,JDBC是否将日期从JVM时区转换为数据库会话时区?

在将Java Date写入SQL TIMESTAMP列之前, JDBC是否将日期从Java虚拟机时区转换为数据库会话的日期? 例如,假设Java虚拟机时区为UTC且数据库会话时区为UTC-5 。 如果Java程序通过将其传递给PreparedStatement#setTimestamp(int, Timestamp)来尝试存储2000-01-01 00:00:00 ,则根据JDBC标准,数据库将存储TIMESTAMP ‘2000-01-01 00:00:00’或TIMESTAMP ‘1999-12-31 19:00:00’ ?

如果应用程序使用另一个时区而不是MySQL,则Hibernate会保存/检索日期减去日期

我在MACHINE_A上使用时区GMT + 3在tomcat上启动了一个应用程序。 我使用带有时区UTC的MACHINE_B上启动的远程mysql服务器。 我们使用spring-data-jpa来表示持久性。 作为问题的一个例子,我将展示存储库: public interface MyRepository extends JpaRepository { Optional findByDate(LocalDate localDate); } 如果我通过localDate 2018-09-06 ,我得到的实体的日期是2018-09-05 (前一天) 在日志中我看到: 2018-09-06 18:17:27.783 TRACE 13676 — [nio-8080-exec-3] ohtype.descriptor.sql.BasicBinder : binding parameter [1] as [DATE] – [2018-09-06] 我搜索了很多这个问题并找到了几篇内容相同的文章(例如https://moelholm.com/2016/11/09/spring-boot-controlling-timezones-with-hibernate/ ) 所以,我有以下application.yml : spring: datasource: url: jdbc:mysql://localhost:3306/MYDB?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC username: root password: ***** jpa: hibernate: naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl properties: hibernate: […]

如何将日期时间从一个时区转换为另一个时区

记录将根据美国的时区保存,但如果我想向用户显示相同的记录,则应将服务器日期时间(美国时区)转换为用户的时区的用户日期时间