当前位置: 首页 > 知识库问答 >
问题:

如何将UTC日期和时间格式转换为区域时间格式?

汤飞
2023-03-14

我有一个方法可以生成一个随机的日期和时间。

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.Period;

public String getRandomFormattedDateAndTime() {
    LocalDateTime date = generateRandomDateAndTimeInPast();
    return formatDate(date);
}
        
public LocalDateTime generateRandomDateAndTimeInPast() {
    return LocalDateTime.now()
                        .minus(Period.ofDays(
                            (new Random().nextInt(365 * 2))
                        ));
}

打印输出类似于“2020-08-07T08:57:09Z”

我见过几个这样的问题和页面,但他们没有给我一个线索。

共有1个答案

柯锋
2023-03-14

不知道为什么人们在这里涉及zoneddatetime,但这似乎是一种有效的方法...

但是,我想添加另一个,那就是使用offsetdatetime

这是您的方法GenerateRandomdateandTimeinPaste的调整版本:

public static OffsetDateTime generateRandomDateAndTimeInPast(int offset) {
    return OffsetDateTime.now(ZoneOffset.ofHours(offset))
                        .minusDays(
                            ThreadLocalRandom.current()
                                            .nextInt(365 * 2)
                        );
}
public static void main(String[] args) {
    OffsetDateTime odt = generateRandomDateAndTimeInPast(2);
    System.out.println(odt);
}
2020-10-14T10:44:23.304+02:00
LocalDateTime ldt = odt.toLocalDateTime();

zoneddatetime也具有该方法,因此如果使用该方法或offsetdatetime,则通过调用Tolocaldatetime()始终可以获得它们所基于的localdatetime

 类似资料:
  • 我想把这个2021年1月20日20:10:14转换成yyyy-MM-dd'T'HH:MM:ss格式。Android系统中的SSS'Z'。目前我正在使用函数,但当我转换为本地格式时,我没有得到原始时间

  • 在下面的示例中,我们正在尝试将“日期”从一种格式转换为其他格式,例如要转换为UTC格式,例如2021-07-26T18:37:15.490Z 有人能帮忙吗。 输入XML: 现有输出: XSLT代码: 参考URL:https://xsltfiddle.liberty-development.net/pNEj9dB/1

  • 问题内容: 这是我的约会日期“ 15-05-2014 00:00:00” 如何将IST转换为UTC即(到14-05-2014 18:30:00) 基于时区到UTC时区。 我的代码是 如果用户从任何区域输入相同的日期,则将获得UTC时间(例如:从澳大利亚,然后从15-05-2014 00:00:00到14-05-2014 16:00:00) 请任何建议。 问题答案: 您不能将日期值“转换为”其他时区

  • 我正在从jsonAPI“2017-03-16T17:23:44.860z”中获取类似于这样的时间字符串,并且我想转换印度标准时区格式,类似于3/16/2017 10:53:44 pm。最后是textview.settext(“3/16/2017下午10:53:44”)

  • 我需要使用php将日期时间插入到oracle表中。 我的日期字符串是这种格式: 当我在php中使用这种格式时, $date1=to_date('2013-10-22 08:02:30','YYYY-MM-DD HH24: MI: SS') 我看到oracle表中的数据是PM格式的。这怎么可能?我如何更改to\u日期,以便任何时间12都是上午,任何时间12点及以上都是下午?

  • 问题内容: 我从服务器获得的时间就像 。 我想将其转换为。 我还希望转换后的时间为24小时格式。任何人都可以解决这个问题。我想得到的输出就像 问题答案: 试试这个: