java - 使用 OffsetDateTime.now() 时如何避免使用毫秒
问题描述
我正在使用OffsetDateTime.now()以 UTC 格式获取当前日期,结果也包括毫秒。我不希望发送毫秒。有没有一种方法可以在不使用拆分的情况下从 OffsetDateTime.now() 中删除毫秒。
Current format: 2021-02-11T11:27:27.846871-08:00
Format i am looking: 2021-02-10T16:04:00-08:00
解决方案
tl;博士
myOffsetDateTime.truncatedTo( ChronoUnit.SECONDS )
细节
日期时间类如OffsetDateTime
不是字符串。它们没有格式。与其考虑字符串操作,不如考虑日期时间逻辑。
该类OffsetDateTime
提供了truncatedTo
一种将较小部分设置为零的方法。传递 aChronoUnit
以指定截断的粒度。指定ChronoUnit.SECONDS
将秒的分数(纳秒数)设置为零。
OffsetDateTime nowUtc = OffsetDateTime.now( ZoneOffset.UTC ) ;
OffsetDateTime nowUtcTruncated = nowUtc.truncatedTo( ChronoUnit.SECONDS ) ;
推荐阅读
- rust - Rust:如何将 Entry API 与拥有的数据结合起来?
- python - 当我不使用任何全局变量时如何更新函数的返回值?
- macos - Homebrew:预下载公式的文件
- html - 引导复选框按钮错误
- javascript - React 更新 Array 内部的 State Array
- swift - 如何删除 iOS14 上出现的新列表填充
- c# - 创建 CoreCLR 失败,HRESULT: 0x80070057
- swift - WKWebView 在 Swift 中抛出 HTTP ERROR 401-Authorization Failed in Cocoa(Mac application)
- jquery - DataTables 无法显示 Ajax 数据
- react-native - @react-navigation/drawer 与 react-navigation-drawer