我有一个字符串“2020-03-25T22:00:00.000Z”,我想将其转换为OffsetDateTime。下面是我尝试的代码,但当我将毫秒传递为000时,它不会反映在OffsetDateTime中。
OffsetDateTime offsetDateTime=OffsetDateTime.parse("2020-03-25T22:00:01.123Z",
DateTimeFormatter.ISO_OFFSET_DATE_TIME);
print(offsetDateTime)
//Output: 2020-03-25T22:00:01.123Z
但是当米利是000的时候
OffsetDateTime offsetDateTime=OffsetDateTime.parse("2020-03-25T22:00:01.000Z",
DateTimeFormatter.ISO_OFFSET_DATE_TIME);
print(offsetDateTime)
//Output: 2020-03-25T22:01Z (mili second is missing)
我也试过自定义格式,但它的行为相同
OffsetDateTime.parse("2020-03-25T22:00:00.123Z",
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX"));
谁能帮我一下吗
我不久前遇到了同样的问题,在Jackson模块GitHub页面上实际上有一个开放的线程:https://GitHub . com/faster XML/Jackson-modules-Java 8/issues/76
正如您从这个帖子中看到的,这似乎是杰克逊模块本身设计中的一个问题。
你不应该担心毫秒丢失。我认为,它的设计是为了省略ISO字符串中的尾随零,以节省时间和内存。
在我看来,这应该是可定制的行为。
你可以在这里找到完全相同的问题:https://stackoverflow.com/a/52191521/4697963
值得一看,并阅读该线程。
您必须记住,用于解析ISO字符串的格式可能与用于将日期时间对象转换回字符串的格式不同。
打印偏移日期时间时,如下所示:
System.out.println(odt);
然后OffsetDateTime。将调用toString()
方法,并从其文档中:
将此日期时间输出为字符串,如 2007-12-03T10:15:30 01:00。输出将是以下 ISO-8601 格式之一:
使用的格式将是最短的,输出省略部分被暗示为零的时间的完整值。
同样,请记住java中的任何类。time
包没有格式,所有这些类都由一些表示毫秒或天的long
field组成。
我可能无法充分强调这一点,但这是处理日期和时间的本质:java。time
类没有格式,您需要将它们转换为适当的格式。
因此,如果您总是想拥有完整的值,那么您只需在打印之前将OffsetDateTime
格式化为String
。
// best is to store that in a static variable
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
// parse using our custom formatter
OffsetDateTime odt = OffsetDateTime.parse("2020-03-25T22:00:00.000Z", dtf);
// print using our custom formatter
String formatted = odt.format(dtf);
System.out.println(formatted);
哪些输出:
2020-03-25T22:00:00.000Z
问题内容: 我有以下Angular代码: 如何使用ng-if条件查找特定字符: 只在字符在这里时显示代码?我的值是88?77,数字是动态的,但问号始终存在,我似乎无法基于此进行过滤? 问题答案: ES2015更新 ES2015具有检查字符串是否包含另一个字符串的方法。如果目标环境支持,则可以使用它。如果在 干草堆中 找到了 针, 则该方法返回,否则返回。 __ 在这里是要搜索的字符串。 请参阅MD
问题内容: 如果包含关键字,该如何编写整个单词的脚本? 示例: 关键字“ fun”,字符串-鸟很有趣,结果-鸟很有趣*。我做以下 但它只是修饰词。我的鸟是 乐趣 纽约 问题答案: 尝试这个: 匹配关键字前面的任何单词字符(至少)和关键字后面的任何单词字符。 并且我建议您使用转义关键字: 为了支持Unicode,请使用 u 标志,而不要使用:
问题内容: 例如,需要使用 字符串找出只读取字符串中 数字 的方法, 即 我的尝试 问题答案: 试试这个: 由于返回的是文本数组,因此您应该通过来访问第一个元素。
问题内容: 我有以下代码。 如您在上面看到的,如果字符串不包含顶点,名称或透明度,我希望将其打印出来。但是我得到一个编译错误,说|| 参数类型未定义operator。我是编程的新手,所以我不确定这意味着什么,请问有人可以指出正确的方向来修复我的代码吗? 问题答案: || 运算符使用单个布尔项,而不是提供许多不同的参数。
我将一个regex模式列表传递给< code>grep来检查syslog文件。它们通常匹配IP地址和日志条目; 这只是一个模式列表,例如我正在循环传递的“1\.2\.部分,因此我无法传递“-v”。 我很困惑试图做上述的逆,不匹配线与某个IP地址和错误!1.2.3.4.*已爆炸”将匹配除1.2.3.4告诉我它已爆炸之外的任何syslog行。我必须能够包括一个IP地址不匹配。 在Stack Overf
现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。