
java如何将年月日转化为时间
用户关注问题
我有一个表示年月日的字符串,想要转换成Java中的日期对象,应该使用什么方法实现?
使用SimpleDateFormat解析年月日字符串
可以使用Java的SimpleDateFormat类来定义字符串的日期格式,例如"yyyy-MM-dd",然后通过其parse方法将字符串转换成Date对象。示例如下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(日期字符串);
我使用的是Java 8以上版本,想知道有没有更现代的方法将年月日转换为时间对象?
使用LocalDate和DateTimeFormatter进行转换
Java 8引入了新的日期时间API,可以使用LocalDate类配合DateTimeFormatter来解析年月日字符串。例如:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(日期字符串, formatter);
这不仅代码简洁,还推荐在新项目中使用。
我想通过年月日将时间转换为Unix时间戳(毫秒值),用Java应该怎么做?
使用LocalDate转换为时间戳
先将年月日字符串转换为LocalDate对象,然后通过LocalDate的atStartOfDay方法转换成LocalDateTime,再转换为Instant并获取时间戳。示例如下:
LocalDate localDate = LocalDate.parse(日期字符串, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
long timestamp = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();