1.8的Time包有几个时间相关的对象:
import java.time.*;
public class TimeUnit {
public static void main(String[] args) {
/**
* LocalDate 即日期,如 "2020-02-02"
* LocalTime 即时间,如 "05:05:02"
* LocalDateTime 即日期时间,如 "2020-02-02 05:05:02"
* MonthDay 即月天,如 "--05-02"
* 以下为几个对象的实例化方式,还有of(...)方式等。
* 各个对象之间还可以相互转换,可参考1.8文档
*/
LocalDate localDate1 = LocalDate.now();
LocalDate localDate2 = LocalDate.parse("2020-02-02");
LocalTime localTime1 = LocalTime.now();
LocalTime localTime2 = LocalTime.parse("05:05:02");
LocalDateTime localDateTime1 = LocalDateTime.now();
LocalDateTime localDateTime2 = LocalDateTime.parse("2020-02-02 05:05:02");
LocalDateTime localDateTime3 = LocalDateTime.of(localDate1, localTime1);
}
}以下为获取每月最后一天日期,LocalDateTime转Date对象等工具类:
还有待完善。。。。。。
import org.apache.commons.lang3.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.ChronoField;
import java.util.Date;
public class TimeUnit {
/**
* 根据LocalDateTime对象转成时间类型
* @param localDateTime
* @return
*/
public static Date localDateTimeToDate(LocalDateTime localDateTime) {
return stringToDate(localDateTime.toString(), "yyyy-MM-dd'T'HH:mm:ss");
}
/**
* 根据给定日期,获取该月最后一天
* @param yearMonthDay "2020-02-02 02:02:02" 或者 "2020-02-02",不传就默认当天
* @return 该月最后一天
*/
public static String getMonthLastDay(String yearMonthDay) {
LocalDate localDate;
if (StringUtils.isNotBlank(yearMonthDay)) {
if (yearMonthDay.contains(":")) {
LocalDateTime localDateTime = LocalDateTime.parse(yearMonthDay);
localDate = localDateTime.toLocalDate();
} else {
localDate = LocalDate.parse(yearMonthDay);
}
} else {
localDate = LocalDate.now();
}
// 拿到本月最后一天的号数,如31号等
long lastDay = localDate.range(ChronoField.DAY_OF_MONTH).getMaximum();
// 计算当天与最后一天的天数差
int offset = ((int) lastDay) - localDate.getDayOfMonth();
// 在当天基础上加上天数差得到最后一天的日期
return localDate.plusDays(offset).toString();
}
/**
* 根据指定格式转成时间类型
* @param timeStr
* @param pattern
* @return
*/
public static Date stringToDate(String timeStr, String pattern) {
try {
SimpleDateFormat format = new SimpleDateFormat(pattern);
return format.parse(timeStr);
} catch (ParseException e) {
return null;
}
}
/**
* 根据"yyyy-MM-dd HH:mm:ss"格式转成时间类型
* @param timeStr
* @return
*/
public static Date stringToDate(String timeStr) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.parse(timeStr);
} catch (ParseException e) {
return null;
}
}
}
版权声明:本文为L9009121314原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。