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

在Java中生成UTC时间

祁高格
2023-03-14
问题内容

我想将Java中01/01/2100的UTC时间设置为‘2100-01-01 00:00:00’。我收到“ 2100-01-01
00:08:00”。任何想法,如何纠正这一点。

public Date getFinalTime() {
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    Date finalTime = null;

    try
    {
        finalTime = df.parse("01/01/2100");            
    } catch (ParseException e)
    {
        e.printStackTrace();
    }

    calendar.setTime(finalTime);
    return calendar.getTime();
}

问题答案:

您还需要为SimpleDateFormat指定时区-当前正在解析 当地时间 午夜,该 时间 以UTC上午8点结束。

TimeZone utc = TimeZone.getTimeZone("UTC");
Calendar calendar = Calendar.getInstance(utc);

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setTimeZone(utc);
Date finalTime = null;

try
{
    finalTime = df.parse("01/01/2100");            
} catch (ParseException e)
{
    e.printStackTrace();
}

calendar.setTime(finalTime);

像以往一样,我个人建议使用Joda Time,它通常功能更强大。如果您愿意,我很乐意将您的示例翻译成Joda Time。

另外,我看到您正在返回calendar.getTime()-这finalTime与您计算完后立即返回一样。

最后,仅捕获ParseException并继续进行就好像没有发生是一个非常糟糕的主意。我希望这只是示例代码,不会反映您的真实方法。同样,我假设您
实际上 将在解析其他文本-如果不是,则正如Eyal所说,您应该直接调用方法Calendar。(或者再次使用Joda Time。)



 类似资料:
  • 问题内容: 我想获取UTC时区的时间。所以我写了代码: 问题是输出显示了我的PST时间(我的本地时区)。我需要它来输出UTC时间,以便将其存储在数据库中。 问题答案:

  • 我想要得到UTC时区的时间。所以我写了代码: 问题是输出显示了PST(我的本地时区)中的时间。我需要它以UTC的形式输出时间,这样我就可以把它存储在我的数据库中。

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

  • 问题内容: 我想生成一个随机时间戳,并向其添加一个随机增量,以生成第二个时间戳。那可能吗? 如果我传递随机的long值来创建时间戳,并且我想随机生成该long值,那么生成该值以给出2012年的时间戳的约束是什么? 问题答案: 您需要将随机数缩放到特定年份的范围,然后将年份的开始添加为偏移量。一年中的毫秒数从一年到另一年(le年有额外的一天,某些年份有leap分钟,依此类推),因此您可以按以下步骤确

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

  • 问题内容: 是否可以使用Jodatime生成随机日期时间,以使日期时间的格式为yyyy-MM-dd HH:MM:SS,并且应该能够生成两个随机日期时间,其中Date2减去Date1会大于2分钟但小于60分钟 请提出一些方法。 问题答案: 这严格遵循您的要求(更正的格式除外)。 如果运行此命令,您会注意到多年来您将获得令人发指的值,但这仅仅是在DateTime整个可能范围(或该日期的Date)上生成