我正在將日期和時間字串轉換為Joda DateTime物件,使用以下代碼片段 -
String time = "124204"/span>;
String date = "05/09/25";
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/mm/yyhhmmss").withZone(DateTimeZone.UTC)。
String dateInString = date.concat(time)。
DateTime dateTime = DateTime.parse(dateInString, formatter)。
System.out.println(dateTime)。
我得到的輸出是 - 2025-01-05T00:42:04.000Z
但是我希望它是 - 2025-01-05T00:42:04.000000Z
我想讓毫秒的精度為6位數。我怎樣才能做到呢?
我怎樣才能做到這一點?謝謝你的幫助。
uj5u.com熱心網友回復:
你很迷惑。
你似乎認為你有一個字串。你沒有;你有一個DateTime型別的物件。你所看到的是在這些物件中呼叫toString()的結果,而且,像所有toString()方法一樣,這只是一個除錯輔助工具。它是給你的開發者看的,絕對不是為了別的(如果你把它用在別的地方,就不要再這么做了)。
如果你想以某種特定的格式進行輸出,那么請制作第二個 DateTimeFormat 物件并使用它。你正在使用你的第一個物件將字串變成日期時間物件(parse方法)。這些格式化物件是雙向的;它們也可以使用format方法,將日期時間物件轉回字串。這樣做。制作你想要的模式,呼叫.format,將你的dateTime物件交給它。
NB:你為什么要使用jodatime?它已經被java.time包所淘汰,該包與jodatime是同一個作者撰寫的。
uj5u.com熱心網友回復:
只要你至少是在Java 8上,就可以使用java.time:
String time = "124204"。
String date = "05/09/25";
DateTimeFormatter parser = DateTimeFormatter. ofPattern("dd/MM/yyHmmss").withZone(ZoneId.of("UTC") )。)
String dateInString = date.concat(time);
ZonedDateTime dateTime = ZonedDateTime.parse(dateInString, parser)。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyy-MM-dd'T'HH:mm:ss.SSSSSX") 。
System.out.println(dateTime.format(formatter))。
這將列印2025-09-05T12:42:04.000000Z。不確定你是否真的想在輸入中使用12小時的格式,我沒有這方面的經驗,所以我已經忽略了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/311890.html
標籤:
上一篇:如何用flow在可組合的螢屏內使用一個coroutine?
下一篇:如何及時轉換這些欄目
