gpt4 book ai didi

java - 在java中将日期转换为纳秒

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

我有一个格式为 "2017-05-17 00:31:16.227" 的日期,我需要将其转换为 "17-MAY-17 12.31.16.227000000 AM".

String convertTimestamp(Timestamp date) {

String newstring = null;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSSSSS");
java.util.Date date1 = dateFormat.parse(date.toString());
DateFormat sdf = new SimpleDateFormat("dd-MMM-yy hh.mm.ss.SSSSSSSSS aa");
newstring = sdf.format(date1);

} catch (Exception e) {
e.printStackTrace();
}

System.out.println("new string" + newstring);

return newstring;
}

但我得到的值是这样的 **"17-MAY-17 12.31.16.000000227 AM"

最佳答案

您正在使用现在已被 java.time 类取代的麻烦的旧旧日期时间类。这些遗留类仅限于 milliseconds这意味着秒的小数点后三位小数。因此,遗留类无法处理您想要的九位数字。

你要的九位小数就是分辨率nanoseconds而不是毫秒。幸运的是,java.time 类的分辨率为纳秒级。

将您的输入解析为 LocalDateTime对象,因为它没有任何时区指示或与 UTC 的偏移量。将中间的空格替换为“T”以符合标准 ISO 8601 格式。

String input = "2017-05-17 00:31:16.227".replace( " " , "T" ) ;
LocalDateTime ldt = LocalDateTime.parse( input );

您应该能够在表示此 LocalDateTime 对象的值的字符串的小数部分中强制添加您想要的尾随零。使用 DateTimeFormatterDateTimeFormatterBuilder .

关于java - 在java中将日期转换为纳秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036879/

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