ChronoField.MILLI_OF_SECOND Java21 也没有
时间: 2024-09-20 18:09:46 浏览: 27
实际上,在Java 21及之后版本中,`ChronoField.MILLI_OF_SECOND` 已经不再是一个官方支持的字段,因为Java的时间处理在Java 8中引入了更细粒度的纳秒(NANO_OF_SECOND)处理。`MILLI_OF_SECOND` 代表的是秒中的毫秒,但在Java中已经不推荐直接使用这种较低的精度,因为它在处理高精度时间时可能会丢失信息。
如果你想在Java 21及以上获取毫秒级别的精确度,你应该使用 `ChronoUnit.MICROS` 或 `ChronoField.MICRO_OF_SECOND`,这两个都是基于纳秒计算的,可以提供更高的分辨率。例如:
```java
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern(DATE_FORMAT)
.appendFraction(ChronoUnit.MICROS, 0, 3) // 保留微秒的三位小数
.toFormatter();
LocalDateTime localDateTime = LocalDateTime.parse(str, formatter);
```
这里 `MICROS` 是纳秒的一千倍,所以能得到三位小数的毫秒精度。
相关问题
pub const fn as_millis(&self) -> u128 { self.secs as u128 * MILLIS_PER_SEC as u128 + (self.nanos.0 / NANOS_PER_MILLI) as u128 } /// Returns the total number of whole microseconds contained by this `Duration`. /// /// # Examples /// /// ``` /// use std::time::Duration; /// /// let duration = Duration::new(5, 730023852); /// assert_eq!(duration.as_micros(), 5730023); /// ```
这段代码定义了一个名为 `as_millis` 的常量函数和一个名为 `as_micros` 的方法,用于将 `Duration` 结构体表示的时间转换为毫秒和微秒。
`as_millis` 常量函数返回一个 `u128` 类型的值,表示 `Duration` 结构体中的时间总共包含的毫秒数。具体的计算公式是将秒数乘以 `MILLIS_PER_SEC`(每秒的毫秒数)并加上纳秒数除以 `NANOS_PER_MILLI`(每毫秒的纳秒数)。
`as_micros` 方法返回一个 `u128` 类型的值,表示 `Duration` 结构体中的时间总共包含的微秒数。具体的计算公式是将秒数乘以 `MICROS_PER_SEC`(每秒的微秒数)并加上纳秒数除以 `NANOS_PER_MICRO`(每微秒的纳秒数)。
在示例中,创建了一个 `Duration` 结构体 `duration`,表示 5 秒 730023852 纳秒。通过调用 `duration.as_micros()` 方法,将该时间转换为微秒,并断言结果为 5730023。
请注意,这段代码可能依赖于其他未提供的代码和常量定义。如果需要更详细的解释或有其他问题,请提供完整的代码或更多上下文信息。
[yolo] params: iou loss: mse (2), iou_norm: 0.75, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.00 Total BFLOPS 65.879 avg_outputs = 532444 Loading weights from yolov3.weights... seen 64, trained: 32013 K-images (500 Kilo-batches_64) Done! Loaded 107 layers from weights-file Cannot load image image_path Detection layer: 82 - type = 28 Detection layer: 94 - type = 28 Detection layer: 106 - type = 28 image_path: Predicted in 1971.707000 milli-seconds.
根据你提供的信息,出现图片无法加载的问题可能是由于以下原因之一:
1. 图片路径错误:请确保你提供给Yolov3的图片路径是正确的,并且能够在系统中找到该图片。你可以再次检查图片路径是否正确,并确保图片文件存在于指定的路径中。
2. 图片格式不支持:Yolov3通常支持常见的图片格式,如JPEG、PNG等。如果你的图片格式不被支持,Yolov3可能无法加载它们。请确保你的图片格式是被支持的。
3. 权重文件问题:你提到正在加载权重文件yolov3.weights,如果权重文件不存在或者损坏,可能会导致无法加载图片。请确保权重文件存在且正确。
4. Yolov3配置问题:Yolov3的配置文件中定义了网络架构和参数配置。如果配置文件中有错误或者不匹配,可能会导致图片无法加载。请确保你正确配置了Yolov3的网络架构和参数。
建议你逐一检查以上可能的原因,排除问题并进行适当的调整。如果问题仍然存在,可以提供更多详细信息以便我能够给出更准确的建议。
阅读全文