Mik*_* B. 14 java datetime timestamp date java-8
Java 8中有一整套日期类:
java.time.LocalDateTime;java.time.ZonedDateTime;java.time.Instant;java.time.OffsetDateTime;java.sql.Timestamp;java.util.Date.我已经传递了他们的JavaDocs并注意到所有这些类都包含我需要的所有方法.因此,目前,我可以随机选择它们.但我想有一些理由说明为什么有6个单独的类,每个类都专门用于特定目的.
技术信息和要求:
String,转换为这些日期格式之一.我的问题:
小智 13
每个Date类都用于特定目的:
如果要在SQL/ JDBCcontext中使用Date ,请使用java.sql.Timestamp.
java.util.Date 是旧的Java API,它不是线程安全的,你可以很难处理时间分区,最重要的是,它的设计很糟糕:一个简单的统一是几个月从1开始,而几天从0开始.
java.time.LocalDateTime 是一个不可变的日期时间对象,表示日期时间,通常被视为年 - 月 - 日 - 小时 - 分 - 秒,您需要准确.
java.time.ZonedDateTimeclass存储所有日期和时间字段,因此您可以使用它来处理以下值:
27th January 1990 at 15:40.30.123123123 +02:00在欧洲/巴黎时区.
为了完成您的任务,ZonedDateTime该类处理从本地时间线LocalDateTime到即时时间线的转换Instant(该时间线模拟时间线上的单个瞬时点).由a表示的两个时间线之间的差异ZoneOffset是与UTC /格林威治的偏移.
计算持续时间和周期:有java.time.Duration一个基于时间的时间量,例如'20.5秒' java.time.Period,这是一个基于日期的时间量(如:26年,2个月和2天).
要获取最大和最小日期,您可以使用Java 8 lambdas,例如:
Date maxDate = list.stream().map(yourInstance -> yourInstance.date).max(Date::compareTo).get();
Date minDate = list.stream().map(yourInstance -> yourInstance.date).min(Date::compareTo).get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3799 次 |
| 最近记录: |