gpt4 book ai didi

Java-毫秒 (SSS) 未使用 SimpleDateFormat 进行解析

转载 作者:行者123 更新时间:2023-12-01 11:20:21 48 4
gpt4 key购买 nike

基本上,我正在尝试将日期/时间解析为 Java,但在尝试解析毫秒时遇到问题。

要解析的数据示例:a[0] = 16/03/2015、a[1] = 10:00:18.120

我读入两个值并将它们连接起来。获取: dateTime = (java.lang.String) "16/03/2015 10:00:18.120"正如您所看到的,当我调试它时,该字符串具有毫秒数。从这里我将其解析为 SimpleDateFormat。它有效 - 但不显示毫秒

DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS", Locale.ENGLISH);
String dateTime;
dateTime= a[0]+" "+a[1];
Date d = df.parse(dateTime);

当前输出:d = (java.util.Date) Mon Mar 16 10:00:18 GMT 2015

感谢您的帮助。

最佳答案

您的代码很好,但您对结果的解释不正确。正如一条评论中正确提到的,java.util.Date 类的方法 toString() 不输出毫秒部分。但毫秒部分仍然是结果对象状态的一部分。证明:

SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS", Locale.ENGLISH);
String dateTime = "16/03/2015 10:00:18.120";
Date d = df.parse(dateTime);
System.out.println(d); // Mon Mar 16 10:00:18 CET 2015
System.out.println(d.getTime()); // 1426496418120
System.out.println("millisecond-part=" + (d.getTime() % 1000)); // millisecond-part=120

所以一切都很好。您甚至可以使用相同的字符串(或 SimpleDateFormat 的另一个实例 - 可能具有不同的模式、区域设置和时区)将结果格式化回字符串。

如果java.util.Date被正确实现为值类型,那么该类的发明者就会注意使toString()的输出代表对象的完整准确状态,但它还没有发生 - 另一个例子说明为什么这个类被破坏了。

关于Java-毫秒 (SSS) 未使用 SimpleDateFormat 进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31315437/

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