gpt4 book ai didi

java - 使用 joda-time 转换时间字符串

转载 作者:行者123 更新时间:2023-12-02 04:56:55 25 4
gpt4 key购买 nike

我必须遵循要打印的时间字符串:“23.02.2015 14:06:30 +01:00”。打印结果应为:“23.02.2015 15:06:30”。经过一番研究后,我发现了一个我认为不是一个好主意的解决方案。也许你们中的任何人对如何正确地做到这一点有一些结论?转换应该使用 joda-time 完成。提前致谢。

** 由于解释上述重复项的差异而进行更新:我的第一种方法就像 Java : how to add 10 mins in my Time 中提到的那样手动添加或删除时间。我试图强调的是,我不认为这是一个好主意,因为如果输入字符串发生变化(可能的错误空间很大),这可能会很危险。所以我想知道 joda-time 是否有一些功能可以让我的生活更轻松,但到目前为止我还没有注意到。

最佳答案

您可以使用DateTime class plusxx() methods ;

public static void main(String[] args) {
String dateTime = "23.02.2015 14:06:30 +01:00";
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss Z");

DateTime jodatime = dtf.parseDateTime(dateTime);
DateTimeFormatter dtfOut = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss");
System.out.println(dtfOut.print(jodatime));


DateTime resultDateTime = jodatime.plusHours(1);
System.out.println(dtfOut.print(resultDateTime));
}

输出是;

23.02.2015 08:36:30
23.02.2015 09:36:30

结果日期没有错误,有关此主题的更多信息请查看 here .

对于固定日期,我使用 withZone( DateTimeZone.forID( "Europe/Prague") ;

添加时区
public static void main(String[] args) {
String dateTime = "23.02.2015 14:06:30 +01:00";
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss Z");

DateTime jodatime = dtf.withZone( DateTimeZone.forID( "Europe/Prague" ) ).parseDateTime(dateTime);
DateTimeFormatter dtfOut = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss");
System.out.println(dtfOut.withZone( DateTimeZone.forID( "Europe/Prague" ) ).print(jodatime));


DateTime resultDateTime = jodatime.plusHours(1);
System.out.println(dtfOut.withZone( DateTimeZone.forID( "Europe/Prague" ) ).print(resultDateTime));
}

输出是;

23.02.2015 14:06:30
23.02.2015 15:06:30

关于java - 使用 joda-time 转换时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28674956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com