【发布时间】:2016-10-05 03:15:24
【问题描述】:
我有一个使用.split() 解析 ZonedDateTime 对象的类,以消除所有我不想要的额外信息。
我的问题:有没有办法使用方括号作为我缺少的分隔符,或者如何在不使用方括号的情况下自行获取时区([US/Mountain])分隔符?
我希望字符串时区看起来像“US/Mountian”或“[US/Mountian]
我的尝试:
我试过wholeThing.split("[[-T:.]]?) 和wholeThing.split("[%[-T:.%]]") 但它们都给了我00[US/Mountain]
我也尝试过wholeThing.split("[\\[-T:.\\]]) 和wholeThing.split("[\[-T:.\]"),但这些只会给我错误。
(部分)我的代码:
//We start out with something like 2016-09-28T17:38:38.990-06:00[US/Mountain]
String[] whatTimeIsIt = wholeThing.split("[[-T:.]]"); //wholeThing is a TimeDateZone object converted to a String
String year = whatTimeIsIt[0];
String month = setMonth(whatTimeIsIt[1]);
String day = whatTimeIsIt[2];
String hour = setHour(whatTimeIsIt[3]);
String minute = whatTimeIsIt[4];
String second = setAmPm(whatTimeIsIt[5],whatTimeIsIt[3]);
String timeZone = whatTimeIsIt[8];
【问题讨论】:
-
为什么不使用 .... 解析 ZonedDateTime 字符串,你知道 ....
ZonedDateTime.parse()? ---无论如何,您的问题不清楚您想要什么输出。您希望timeZone字符串是什么?-06:00?US/Mountain?请说清楚。 --- 但是,最好使用 正则表达式,而不是尝试使用split(),即使用Pattern和Matcher,这样您就可以使用@ 获得适当的部分987654335@ 方法。如果你不知道正则表达式,现在是学习的时候了。 -
澄清一下,您希望能够从字符串中获取时区吗?
-
编辑澄清
-
@andreas 因为我想自己练习,而且 ZonedDateTime.parse() 并不能完全满足我的要求。我的课是这样,除了我坚持的这一部分。
-
好奇:
ZonedDateTime.parse()怎么不给你你想要的?
标签: java split zoneddatetime