如何在java中增加或减少日期(仅限日期)
我想用mySQL格式显示完整的日期,但不想看到时间 想要增加或减少执行操作的日期tl;博士 细节 对于类型类似于SQL标准带时区的时间戳的列,请作为即时检索如何在java中增加或减少日期(仅限日期),java,Java,我想用mySQL格式显示完整的日期,但不想看到时间 想要增加或减少执行操作的日期tl;博士 细节 对于类型类似于SQL标准带时区的时间戳的列,请作为即时检索 Instant instant = myResultSet.getObject( … , Instant.class ) ; 即时始终以UTC为单位。根据某个地区的人们使用的挂钟时间,调整到您想要感知日期的时区。在任何特定的时刻,世界各地的日期都因地区而异。在亚洲/加尔各答印度可能是“明天”,而在美国/蒙特利尔加拿大仍然是“昨天” Zon
Instant instant = myResultSet.getObject( … , Instant.class ) ;
即时
始终以UTC为单位。根据某个地区的人们使用的挂钟时间,调整到您想要感知日期的时区。在任何特定的时刻,世界各地的日期都因地区而异。在亚洲/加尔各答
印度可能是“明天”,而在美国/蒙特利尔
加拿大仍然是“昨天”
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
只提取日期,因为这是您想要关注的内容
LocalDate ld = zdt.toLocalDate() ;
使用各种加减法来加减天数、周数、月数、年数或它们的组合(Period
)
或者
对于类似于无时区的SQL标准时间戳的数据库类型
,请作为LocalDateTime
检索。跳过上面带有时区的部分。直接转到提取LocalDate
。继续你的加减法
myResultSet.getObject( … , LocalDateTime.class )
.toLocalDate()
.plusDays( 1 )
.toString()
要以标准ISO 8601格式生成表示日期值的字符串,请调用
LocalDate::toString()
。对于其他格式,请使用DateTimeFormatter
。搜索堆栈溢出以了解更多信息 到目前为止你试过什么?
LocalDate dayAfter = ld.plusDays( 1 ) ;
Period p = Period.parse( "P3M7D" ) ;
LocalDate later = ld.plus( p ) ;
myResultSet.getObject( … , LocalDateTime.class )
.toLocalDate()
.plusDays( 1 )
.toString()