java - 我们如何在java中增加或减少日期(JUST DATE)
问题描述
我想以 mySQL 格式显示完整的日期,但不想同时看到时间。
想要增加或减少执行操作的日期
解决方案
tl;博士
myResultSet.getObject( … , Instant.class )
.atZone( ZoneId.of( "Pacific/Auckland" ) )
.toLocalDate()
.toString()
细节
对于类似于 SQL-standard 类型的列TIMESTAMP WITH TIME ZONE
,检索为Instant
.
Instant instant = myResultSet.getObject( … , Instant.class ) ;
AnInstant
始终采用 UTC。根据某个地区的人们使用的挂钟时间,调整到您想要感知日期的时区。对于任何特定时刻,日期在世界各地因地区而异。在印度可能是“明天”,而在加拿大Asia/Kolkata
仍然是“昨天” 。America/Montreal
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
仅提取日期,因为这是您要关注的内容。
LocalDate ld = zdt.toLocalDate() ;
使用各种加/减方法来加减天数、周数、月数、年数或这些方法的组合 ( Period
)。
LocalDate dayAfter = ld.plusDays( 1 ) ;
或者……</p>
Period p = Period.parse( "P3M7D" ) ;
LocalDate later = ld.plus( p ) ;
对于类似于 SQL-standard 的数据库类型TIMESTAMP WITHOUT TIME ZONE
,检索为LocalDateTime
. 跳过上面带有时区的部分。直接去解压LocalDate
。继续你的加法/减法。
myResultSet.getObject( … , LocalDateTime.class )
.toLocalDate()
.plusDays( 1 )
.toString()
要生成表示标准 ISO 8601 格式的日期值的字符串,请调用LocalDate::toString()
. 对于其他格式,请使用DateTimeFormatter
. 搜索堆栈溢出以了解更多信息。
推荐阅读
- php - Laravel Paypal POST 请求被拒绝
- ionic4 - 如何在卡 Ionic 上有圆形按钮
- python - 什么可以解决下面提到的错误?
- javascript - 使用 jQuery 在当前页面中搜索
- vb.net - 如何防止在 vb.net 文本文件的文本框中出现换行符 (vbLf) 和回车符 (vbCr)?
- javascript - 另一个 Div 内的 Div 避免点击
- mongodb - Mongorestore 未捕获的异常
- ios - 为什么 Realm 以错误的顺序存储值?
- npm - NPM 运行开始/本地主机未加载并使我的计算机非常慢
- json - 有没有办法根据spring boot中的条件从JSON响应内容的JSON数组的匹配数组元素中省略某些字段