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

在Java或Groovy中转换UTC时间T0当地时间

祁修诚
2023-03-14
问题内容

我需要存储createdOn(域类中的属性之一)。我正在获取系统时间并存储该属性的值。当我上载到服务器存储UTC时间时,我的时区是(GMT + 5:30
Chennai,Kolkata,Mumbai,New
Delhi)。我希望它成为IST(印度标准时间),我的应用程序在Grails上使用Groovy。请帮助我调整UTC / IST时差。提前致谢


问题答案:

不,不要那样做。曾经!

如果您以当地形式 存储 时间,那么您将痛苦不堪。基本上,您必须同时存储本地时间和本地时区,然后时间的显示就变成一个复杂的野兽(计算出源时区和目标时区)。

所有时间都应 存储 为UTC。没有例外。用户输入的时间应先转换为UTC,然后再写入任何地方(尽快)。

向用户显示的时间应尽可能从UTC转换为本地时间。

从曾经陷入多时区泥潭的人那里获取建议。使用UTC并仅在必要时进行转换将使您的生活更加轻松。

一旦有了UTC时间,就可以使用SimpleDateFormat类进行转换了:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class scratch {
    public static void main (String args[]) {
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
        sdf.setTimeZone (TimeZone.getTimeZone ("IST"));
        System.out.println ("Time in IST is " + sdf.format (now));
    }
}

输出:

Time in IST is 2011-04-11 13:40:04

这与Mirzapur的当前时间一致,我认为IST的所在地(IST在此并不重要,因为它只有一个时区,因此目前在印度并不重要)。



 类似资料:
  • 问题内容: 我知道这个主题已被殴打致死,但在搜寻了这个问题几个小时之后,我不得不问。 我的问题:根据客户端应用程序(iphone)的当前时区对服务器上的日期进行计算。客户端应用程序以秒为单位告诉服务器,其时区距GMT的距离。然后,我想使用此信息对服务器中的日期进行计算。服务器上的日期都存储为UTC时间。 因此,在将UTC日期对象转换为该本地时区之后,我想获取其HOUR。 我目前的尝试: 变量小时和

  • 问题内容: 我有一个毫秒本地本地时间戳,我想将其转换为毫秒本地UTC时间戳。快速浏览一下文档,看起来像这样工作: 有一个更好的方法吗? 问题答案: 使用a 来获取本地纪元处的偏移量,然后将其添加到本地纪元时间戳中。

  • 我想将datetime-local从html转换为UTC时间: html: Java: 即本地时间(GMT 8),我想将其转换为UTC字符串时间 例如:转换为- 我搜索了很多资源,但仍然不知道怎么做。

  • 我是PostgreSQL的新手,我想知道是否有一种直接的方法可以使用函数将表中的时间戳值转换为不同的时区。在我的情况下,是UTC到EST。 例如,我需要将这些值转换为EST(不仅仅是一个值,而是表中的所有值)

  • 问题内容: 作为json的回应,我正在获取UTC时区。我需要将其转换为当地时间。 有人可以帮忙吗? 问题答案: 编辑(2017年1月2日):请参阅@Jason的答案,它比这更好,因为它使用自定义过滤器修复日期格式-这是更Angular的方法。 我的原始答案和修改内容: 您可以使用过滤器格式化日期: 这将输出: (假设) 请参阅angularjs.org中的此文档。它有很多示例,非常有帮助! 编辑:

  • 问题内容: 如何将UTC时间转换为 当地时间 ? 我已经为我需要当地时间的所有国家/地区创建了具有UTC时差的地图。然后,我将该差异作为持续时间添加到当前时间(UTC),并打印结果希望是该特定国家/地区的当地时间。 由于某些原因,结果是错误的。例如,在匈牙利,相差一小时。知道为什么我得到的结果不正确吗? 问题答案: 请记住,操场的时间设置为,因此它正在工作。 正确的方法是使用,这是一个示例: