我有这段代码正在生成一个时间戳,然后解析。
DateTimeFormatter formatter =
DateTimeFormatter
.ofPattern("yyyyMMdd kk:HH:ss.SSSZ")
.withLocale(Locale.getDefault())
.withZone(ZoneId.systemDefault());
Instant now = Instant.now();
String formatted = formatter.format(now);
Instant parsed = formatter.parse(formatted, Instant::from);
运行时,最后一行会产生异常:
java.time.format.DateTimeParseException: Text '20180123 12:12:45.648-0500' could not be parsed: Unable to obtain Instant from TemporalAccessor: {SecondOfMinute=45, NanoOfSecond=648000000, Offhtml" target="_blank">setSeconds=-18000, MilliOfSecond=648, MicroOfSecond=648000, HourOfDay=12},ISO,America/New_York resolved to 2018-01-23 of type java.time.format.Parsed
Caused by: java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {SecondOfMinute=45, NanoOfSecond=648000000, OffsetSeconds=-18000, MilliOfSecond=648, MicroOfSecond=648000, HourOfDay=12},ISO,America/New_York resolved to 2018-01-23 of type java.time.format.Parsed
Caused by: java.time.temporal.UnsupportedTemporalTypeException: **Unsupported field: InstantSeconds**
我用 DateTimeFormatter.ISO_INSTANT 替换了格式化程序,它可以正常工作。产生的实际数据几乎相同。什么是断开连接?
ISO_INSTANT: 2018-01-23T16:51:25.516Z
My Format: 20180119 23:59:59.999-0800
我必须使用我的格式。这里有什么问题?
问题在于您的格式不能完全代表即时消息,因为您的格式根本没有几分钟的代表。格式化程序可以正确地使用Instant并以您的格式输出结果,因为Instant具有您格式所需的所有数据,但是您的格式不具备Instant所需的所有数据。
尝试将模式更改为yyyyMMdd kk:HH:mm:ss.SSS
,您将看到代码现在可以工作了。请注意添加mm
。
如果绝对需要无缝模式,则应进行自己的TemporalQuery来从TemporalAccessor中提取所需的信息。在这种情况下,我只需将分钟设置为0
:
public class MyQuery implements TemporalQuery<Instant> {
@Override
public Instant queryFrom(TemporalAccessor temporal) {
LocalDate ld = LocalDate.from(temporal);
LocalTime lt = LocalTime.of(temporal.get(ChronoField.HOUR_OF_DAY), 0, temporal.get(ChronoField.SECOND_OF_MINUTE), temporal.get(ChronoField.NANO_OF_SECOND));
return ZonedDateTime.of(ld, lt, ZoneId.systemDefault()).toInstant();
}
}
然后,我们可以像下面这样使用TemporalQuery:
public class Test {
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyyMMdd kk:HH:mm:ss.SSS")
.withLocale(Locale.getDefault())
.withZone(ZoneId.systemDefault());
Instant now = Instant.now();
String formatted = formatter.format(now);
System.out.println(formatted);
Instant ld = formatter.parse(formatted, new MyQuery());
}
}
支持字段允许 EF 直接读写字段(而不是属性)。 惯例 按照惯例,以下字段将被发现为给定属性的支持字段(按列出顺序优先)。只有包含在模型中的属性才具有支持字段。关于属性如何包含在模型中,请查看 包含和排除属性。 _<驼峰属性名> _<属性名> m_<驼峰属性名> m_<属性名> public class Blog { private string _url; public int
我试图从azure key vault中为azure函数获取连接字符串。这些是我做的步骤, > 在azure函数中创建了一个托管标识(系统分配) 在azure密钥库中创建秘密 如有任何帮助,将不胜感激
avro.version= 在avro模式中,map type不支持缺省值。我尝试了以下不同的模式。 第一: 第二: 第三: Java代码如下: 我只希望constraintQuantities和RawQuanties为null。因为这些是可选字段。即使我没有将它们设置为null,它也会抛出异常。 最重要的是,方法生成java POJO,但无法构建该对象。 如果不设置它们为空,然后接收以下异常:
我试图解析下面的processingdate,以便最终得到格式为2020-11-10T10:43:07 00:00的日期。我如何修改以下内容以产生此结果?
在我的搜索引擎中,用户可以选择搜索大小写敏感或不敏感。如果他们选择这样做,查询将搜索使用自定义区分大小写分析器的字段。这是我的设置: 获取/candidates/_settings 因此,我从这个答案中创建了一个名为的自定义分析器。我试图定义我的,如下所示: 把/candidates/_mapping/candidate 因此,在查询区分大小写的匹配时,我可以执行以下操作: 我甚至没有进入最后一步
问题内容: 我正在尝试与fieldset配合使用,但缩放比例不正确。如果我改成,同样的事情也起作用。 我尝试使用Safari和Firefox。 我想念什么吗? 问题答案: 基本上,字段集的默认呈现实际上无法在CSS中表示。结果,浏览器必须以非CSS术语来实现它,这会干扰CSS在该元素上的应用。 几乎所有无法使用纯CSS重新创建的元素都会出现此类问题。