java 8位日期转换器_Jdk8最全日期转换类,String转各种日期,各种日期转String

importorg.junit.Test;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjava.sql.Timestamp;import java.time.*;importjava.time.format.DateTimeFormatter;importjava.time.temporal.UnsupportedTemporalTypeException;public classJdk8日期转换类 {private static Logger logger = LoggerFactory.getLogger(Jdk8日期转换类.class);/***********************************************

* 错误示例与正例

************************************************/@Testpublic voidLocalDate_to_String_错误示例_LocalDate不包含时分秒不能使用HHmmss(){try{

LocalDate date=LocalDate.now();

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String text=date.format(formatter);

}catch(UnsupportedTemporalTypeException e){

logger.error("错误示例: LocalDate不包含时分秒不能使用HH:mm:ss, 应该用LocalDateTime, "+e.getMessage(), e);

}

}

@Testpublic voidString_to_LocalDateTime_错误示例_LocalDateTime格式化必须包含时分秒HHmmss(){try{

String 日期string= "2020-04-13";

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

LocalDateTime parsedDate=LocalDateTime.parse(日期string, formatter);

}catch(DateTimeException e){

logger.error("LocalDateTime格式化必须包含时分秒HH:mm:ss, " +e.getMessage(), e);

}

}

@Testpublic voidLocalDateTime_to_String_正例_但是LocalDateTime可以使用格式yyyy_MM_dd(){

LocalDateTime date=LocalDateTime.now();

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

String 日期string=date.format(formatter);

logger.info("LocalDateTime转String,日期string===" +日期string);

}/***********************************************

* 各种日期之间互转

************************************************/@Testpublic void util_date_互转_LocalDate() { //java.util.Date 转 LocalDate//java.util.Date 转 LocalDate

java.util.Date date = newjava.util.Date();

Instant instant=date.toInstant();

ZoneId zone=ZoneId.systemDefault();

LocalDateTime localDateTime=LocalDateTime.ofInstant(instant, zone);

LocalDate localDate=localDateTime.toLocalDate();//LocalDate 转 java.util.Date

LocalDate localDate2 =LocalDate.now();

Instant instant2=localDate2.atStartOfDay().atZone(zone).toInstant();

java.util.Date date2=java.util.Date.from(instant2);

}

@Testpublic void util_date_互转_LocalDateTime() { //java.util.Date 转 LocalDateTime//util Date 转 LocalDateTime

java.util.Date date = newjava.util.Date();

LocalDateTime localDateTime=LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());//LocalDateTime 转 util Date

Instant instant =localDateTime.atZone(ZoneId.systemDefault()).toInstant();

date=java.util.Date.from(instant);

}

@Testpublic void util_date_互转_sql_Timestamp(){ //java.util.Date 转 java.sql.Timestamp//LocalDateTime

java.util.Date date = newjava.util.Date();

Instant instant=date.toInstant();

LocalDateTime localDateTime=LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

java.sql.Timestamp timestamp=Timestamp.valueOf(localDateTime);

logger.info("java.util.Date转java.sql.Timestamp,timestamp===" +timestamp.toString());//LocalDateTime 转 util Date

LocalDateTime localDateTime2 =timestamp.toLocalDateTime();

}

@Testpublic void util_date_互转_LocalTime() { //java.util.Date 转 LocalTime//LocalTime 转 java.util.Date

java.util.Date date = newjava.util.Date();

Instant instant=date.toInstant();

ZoneId zone=ZoneId.systemDefault();

LocalDateTime localDateTime=LocalDateTime.ofInstant(instant, zone);

LocalTime localTime=localDateTime.toLocalTime();

LocalDate localDate=localDateTime.toLocalDate();//java.util.Date 转 LocalTime

LocalTime localTime2 =LocalTime.now();

LocalDate localDate2=LocalDate.now();

LocalDateTime localDateTime2=LocalDateTime.of(localDate2, localTime2);

Instant instant2=localDateTime2.atZone(zone).toInstant();

java.util.Date date2=java.util.Date.from(instant2);

}/***********************************************

* 各种日期转String

************************************************/@Testpublic void LocalDate_to_String(){ //得到不包含时分秒的字符串

LocalDate date =LocalDate.now();

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

String 日期string=date.format(formatter);

logger.info("LocalDate转String,日期string===" +日期string);

}

@Testpublic void LocalDateTime_to_String(){ //得到包含时分秒的字符串

LocalDateTime date =LocalDateTime.now();

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String 日期string=date.format(formatter);

logger.info("LocalDateTime转String,日期string===" +日期string);

}

@Testpublic void java_util_Date_to_String(){ //java.util.Date 转 String

java.util.Date date = newjava.util.Date();

Instant instant=date.toInstant();

LocalDateTime localDateTime=LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

String 日期string=localDateTime.format(formatter);

logger.info("java.util.Date转String,日期string===" +日期string);

}

@Testpublic void java_sql_Date_to_String(){ //java.sql.Date 转 String

java.sql.Date sqlDate = newjava.sql.Date(System.currentTimeMillis());

LocalDate localDate=sqlDate.toLocalDate();

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

String 日期string=localDate.format(formatter);

logger.info("java.sql.Date转String,日期string===" +日期string);

}

@Testpublic void java_sql_Timestamp_to_String(){ //Timestamp 转 String

java.sql.Timestamp timestamp = newjava.sql.Timestamp(System.currentTimeMillis());

LocalDateTime localDateTime=timestamp.toLocalDateTime();

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String 日期string=localDateTime.format(formatter);

logger.info("java.sql.Timestamp转String,日期string===" +日期string);

}/***********************************************

* String转各种日期

************************************************/@Testpublic void String_to_LocalDate(){ //String 转 LocalDate

String 日期string = "2020-04-13";

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

LocalDate parsedDate=LocalDate.parse(日期string, formatter);

logger.info("String转LocalDate,LocalDate===" +parsedDate.toString());

}

@Testpublic void String_to_LocalDateTime(){ //String 转 LocalDateTime

String 日期string = "2020-04-13 18:49:30";

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime parsedDate=LocalDateTime.parse(日期string, formatter);

logger.info("String转LocalDateTime,LocalDateTime===" +parsedDate.toString());

}

@Testpublic void String_to_java_util_Date(){ //String 转 java.util.Date

String 日期string = "2020-04-13";

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

LocalDate localDate=LocalDate.parse(日期string, formatter);

Instant instant=localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();

java.util.Date utilDate=java.util.Date.from(instant);

logger.info("String转java.util.Date,date===" +utilDate.toString());

}

@Testpublic void String_to_java_sql_Date(){ //String 转 java.sql.Date

String 日期string = "2020-04-20";

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd");

LocalDate localDate=LocalDate.parse(日期string, formatter);

java.sql.Date date=java.sql.Date.valueOf(localDate);

logger.info("String转java.sql.Date,date===" +date.toString());

}

@Testpublic void String_to_java_sql_Timestamp(){ //String 转 java.sql.Date

String 日期string = "2020-04-20 19:20:00";

DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime localDateTime=LocalDateTime.parse(日期string, formatter);

java.sql.Timestamp timestamp=Timestamp.valueOf(localDateTime);

logger.info("String转java.sql.Timestamp,timestamp===" +timestamp.toString());

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值