如何在没有 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.time

java.utilDate-Time API及其格式化APISimpleDateFormat过时且容易出错。建议完全停止使用它们,切换到现代的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
<<p>

在线演示/kbd>了解更多关于现代日期时间API*Trail: Date Time.


*无论什么原因,如果你必须坚持Java 6或Java 7,你可以使用ThreeTen-Backport支持大部分java。time功能到Java 6 &7. 如果你正在为一个Android项目工作,而你的Android API级别仍然不符合Java-8,请检查Java 8+ API,通过desugaring和如何在Android项目中使用ThreeTenABP。

最新更新