gpt4 book ai didi

java - 从字符串中检索年、月、日、小时、秒和时区并转换为日期时间

转载 作者:行者123 更新时间:2023-11-29 05:30:30 26 4
gpt4 key购买 nike

我想使用格式为 yyyyMMddHHmmss+timezone 的字符串获取 DateTime 对象,

举个例子:

20131216014500+0000

看起来我可以使用 DateTimeFormatter 但我真的不知道如何使用,然后我使用正则表达式来创建 DateTime 对象。为此,我正在使用这个:

Pattern.compile("([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])\\+([0-9][0-9][0-9][0-9])");
Matcher m = p.matcher(timestamp);
String match = m.group();
int year = Integer.parseInt(m.group(0));
int monthOfYear = Integer.parseInt(m.group(1));
int dayOfMonth = Integer.parseInt(m.group(2));
int hourOfDay = Integer.parseInt(m.group(3));
int minuteOfHour = Integer.parseInt(m.group(4));
int secondOfMinute = Integer.parseInt(m.group(5));
// TimeZone tz = TimeZone.getTimeZone("");
DateTime date = new DateTime(year, monthOfYear, dayOfMonth, hourOfDay, minuteOfHour, secondOfMinute);

这里我有两个问题,一个是我不知道如何设置TimeZone。

第二个是运行它我得到 java.lang.IllegalStateException。

有什么帮助吗?

最佳答案

一些示例代码使用 Joda-Time 2.3.

与 java.util.Date 不同,Joda-Time DateTime知道自己的时区。如果愿意,您可以在格式化程序定义中指定时区(调用 withZone)。或者您可以通过调用 toDateTime 并传递 DateTimeZone 实例来创建一个设置为区域的新 DateTime 实例,如下所示。

String string = "20131216014500+0000";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmssZ");
DateTime dateTime = formatter.parseDateTime( string ); // Default time zone.

// Shift time zone to UTC/GMT.
DateTime dateTimeUtc = dateTime.toDateTime( DateTimeZone.UTC );

// Shift time zone to a named time zone.
// Guessing that "Europe/Madrid" is appropriate for Málaga Spain.
DateTime dateTimeMálaga = dateTime.toDateTime( DateTimeZone.forID( "Europe/Madrid" ) );

转储到控制台...

System.out.println( "dateTime: " + dateTime );
System.out.println( "dateTimeUtc: " + dateTimeUtc );
System.out.println( "dateTimeMálaga: " + dateTimeMálaga );

运行时...

dateTime: 2013-12-15T17:45:00.000-08:00
dateTimeUtc: 2013-12-16T01:45:00.000Z
dateTimeMálaga: 2013-12-16T02:45:00.000+01:00

关于java - 从字符串中检索年、月、日、小时、秒和时区并转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239375/

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