如何在没有 T 的情况下将“T”添加到 UTC 时间戳,并为其添加 5 分钟

我想将字符串 d(UTC 格式的日期)转换为带有 'T' 的 UTC 格式的字符串,并将时间增加 5 分钟。下面是代码

    public static void main (String args[]) throws ParseException
{
    String d="2021-08-27 06:25:00.716241+00:00";
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSSXXX");
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    Date actualDate = format.parse(d);  
    String a=format1.format(actualDate);
    System.out.println(a);
}

我得到的输出为 2021-08-27T12:06:56 但我需要字符串 'a' 为 2021-08-27T06:25:00 然后添加 5 分钟使其成为 2021-08-27T06:30:00 请帮助

回答

时间

java.util日期时间API及API格式,SimpleDateFormat都已经过时,而且容易出错。建议完全停止使用它们并切换到现代 Date-Time API *

使用java.time现代日期时间 API 的解决方案:

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
String d = "2021-08-27 06:25:00.716241+00:00";
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("u-M-d H:m:s.SSSSSSXXX", Locale.ENGLISH);
OffsetDateTime odt = OffsetDateTime.parse(d, dtfInput);
DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
String str = odt.format(dtfOutput);
System.out.println(str);
// Add 5 minutes to it
odt = odt.plusMinutes(5);
str = odt.format(dtfOutput);
System.out.println(str);
}
}

输出:

2021-08-27T06:25:00
2021-08-27T06:30:00

ONLINE DEMO

Trail: Date Time 中了解有关现代日期时间 API * 的更多信息。


* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用ThreeTen-Backport,它将大部分java.time功能向后移植到 Java 6 和 7。如果您正在为 Android 项目和您的 Android API 工作级别仍然不符合 Java-8,请检查通过 desugaring和How to use ThreeTenABP in Android Project可用的 Java 8+ APIs。


以上是如何在没有 T 的情况下将“T”添加到 UTC 时间戳,并为其添加 5 分钟的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>