当前位置: 首页 > 面试题库 >

在Joda Time中如何在不更改时间的情况下转换时区

慕健
2023-03-14
问题内容

我正在从数据库中获取UTC时间戳,这是我设置为JodaTime DateTime实例的时间

DateTime dt = new DateTime(timestamp.getTime());

它完美地存储了时间,10:00 AM但带有本地时区。例如,我处于IST时区,即UTC的+5:30

我尝试了很多更改时区的方法,但每件事都会10:00 AM通过使用+5:30时差将时间从其他时间更改为其他时间

有什么方法可以更改TimeZone而不影响当前时间

编辑:如果我当前时间是:

2013-09-25 11:27:34 AM      UTC

以下是我使用这个的结果 new DateTime(timestamp.getTime());

2013-09-25 11:27:34 AM  Asia/Kolkata

以下是当我使用它的结果new DateTime(timestamp.getTime(), DateTimeZone.UTC)

2013-09-25 05:57:34 AM  UTC

问题答案:

您可以使用Class LocalDateTime

LocalDateTime dt = new LocalDateTime(t.getTime());

并转换LocalDateTimeDateTime

DateTime dt = new LocalDateTime(timestamp.getTime()).toDateTime(DateTimeZone.UTC);

乔达(Joda)DateTime将“米利斯”中的任何时间都视为“ 当前 时代的1970
年代以来的米利斯”。因此,创建DateTime实例时,将使用当前时区创建实例。



 类似资料:
  • 我正在从数据库中获取UTC时间戳,我正在将其设置为JodaTime实例 它完美地存储时间,比如,但带有当地时区。例如,我在IST时区,从UTC开始是5:30 我已经尝试了很多改变时区的东西,但每一件事都可以通过使用5:30的差异将时间从更改为其他时间 有什么方法可以在不影响当前时间的情况下更改时区吗 编辑:如果我现在的时间是: 以下是我使用这个时的结果; 下面是我使用这个时的结果;

  • 我正在使用django模型。django设置中的TIMEZONE是UTC。并通过做一些算术来构建时间戳。 当我使用::timestamp时,时间戳返回为2021 07月26日00:00:00如果我使用::timestamp,它将变为2021 07月26日00:00:00,即使请求的\u时区是“美国/纽约” 我希望输出为2021 07月26日00:00:00-04:00,即显示与“附加美国/纽约”偏

  • 我在用org。乔达。时间LocalDate和LocalDateTime。我从外部源获得一个Unix时间戳,并希望从中生成一个LocalDate(时间)。关键是,在该外部系统的界面中定义,所有日期/时间都在UTC时区内。因此,我希望避免从该时间戳到本地系统的任何默认时区的任何隐式转换,这可能与UTC不同。有一个LocalDateTime的构造器用于这些事情,所以我尝试(作为一个例子): 结果让我有点

  • 问题内容: 我需要一个解决方案将String转换为字节数组,而无需像这样更改: 输入: 输出: 当我使用 那么回复是 但我希望回复是 问题答案: 您应始终确保序列化和反序列化使用相同的字符集,这会将字符映射到字节序列,反之亦然。默认情况下,String.getBytes()和新的String(bytes)使用默认字符集,该字符集可能是特定于语言环境的。 使用getBytes(Charset)重载

  • 我正在使用咖啡因缓存,并寻找一种方法来更新缓存中的值,而不更改其过期时间。 场景是我使用缓存来加速数据加载。数据更改延迟5秒是可以接受的,而我希望返回速度很快。此外,我希望这些缓存在第一次命中1天后过期,以避免不必要的内存使用。 因此,我希望每个缓存的密钥持续一天,但其值每5秒更新一次。 方法似乎已关闭,但刷新持续时间后的第一个返回值仍然是旧值。这对我来说并不理想,因为两次点击之间的持续时间可能是