Java8新特性-019-与传统日期处理的转换

To遗留类From遗留类
java.time.Instant java.util.DateDate.from(instant)date.toInstant()
java.time.Instant java.sql.TimestampTimestamp.from(instant)timestamp.toInstant()
java.time.ZonedDateTime java.util.GregorianCalendarGregorianCalendar.from(zonedDateTime)cal.toZonedDateTime()
java.time.LocalDate java.sql.DateDate.valueOf(localDate)date.toLocalDate()
java.time.LocalTime java.sql.TimeDate.valueOf(localDate)date.toLocalTime()
java.time.LocalDateTime java.sql.TimestampTimestamp.valueOf(localDateTime)timestamp.toLocalDateTime()
java.time.ZoneId java.util.TimeZoneTimezone.getTimeZone(id) timeZone.toZoneId()java.time.format.DateTimeFormatter
java.text.DateFormat formatter.toFormat()

测试代码

TransferTimeTest.java

package java8.time;

import java.sql.Time;
import java.sql.Timestamp;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.GregorianCalendar;

import org.junit.Test;

public class TransferTimeTest {

    /*
     * 1.java.time.Instant <----> java.util.Date  
     *      TO遗留类                   FROM遗留类
     *      Date.from(instant)      date.toInstant()
     */
    @Test
    public void test1() {
        Date date = new Date();
        Instant ins = Instant.now();
        System.out.println(date);
        System.out.println(ins);

        // TO遗留类(Date.from方法)
        Date from = Date.from(ins);
        System.out.println("我是从Instant转换成Date的!" + from);

        // FROM遗留类(date.toInstant)
        Instant instant = date.toInstant();
        System.out.println("我是从Date转换成Instant的!" + instant);
    }

    /*
     * 2.java.time.Instant <----> java.sql.Timestamp 
     *      TO遗留类                       FROM遗留类
     *      Timestamp.from(instant)     timestamp.toInstant()
     */
    @Test
    public void test2() {
        Timestamp timestamp = new Timestamp(new Date().getTime());
        Instant ins1 = Instant.now();
        System.out.println(timestamp);
        System.out.println(ins1);

        // TO遗留类(Timestamp.from(instant)
        Timestamp from = Timestamp.from(ins1);
        System.out.println("我是从Instant转换成Timestamp的!" + from);

        // FROM遗留类(timestamp.toInstant)
        Instant instant = timestamp.toInstant();
        System.out.println("我是从Timestamp转换成Instant的!" + instant);
    }

    /*
     * 3.java.time.ZonedDateTime <----> java.util.GregorianCalendar 
     *      TO遗留类                                       FROM遗留类
     *      GregorianCalendar.from(zonedDateTime)       cal.toZonedDateTime()
     */
    @Test
    public void test3() {
        ZonedDateTime zdt = ZonedDateTime.now();
        GregorianCalendar cal = new GregorianCalendar();
        System.out.println(zdt);
        System.out.println(cal);

        // TO遗留类(GregorianCalendar.from方法)
        GregorianCalendar from = GregorianCalendar.from(zdt);
        System.out.println("我是从ZonedDateTime转换成GregorianCalendar的!" + from);

        // FROM遗留类(cal.toZonedDateTime方法)
        ZonedDateTime zonedDateTime = cal.toZonedDateTime();
        System.out.println("我是从GregorianCalendar转换成ZonedDateTime的!" + zonedDateTime);
    }

    /*
     * 4.java.time.LocalDate <----> java.sql.Date
     *      TO遗留类                       FROM遗留类
     *      Date.valueOf(localDate)     date.toLocalDate()
     */
    @Test
    public void test4() {
        LocalDate ld = LocalDate.now();
        java.sql.Date date = new java.sql.Date(new Date().getTime());
        System.out.println(ld);
        System.out.println(date);

        // TO遗留类(Date.valueOf方法)
        java.sql.Date valueOf = java.sql.Date.valueOf(ld);
        System.out.println("我是从LocalDate转换成Date的!" + valueOf);

        // FROM遗留类(date.toLocalDate方法)
        LocalDate localDate = date.toLocalDate();
        System.out.println("我是从Date转换成LocalDate的!" + localDate);
    }

    /*
     * ……
     */
}

微信公众号:JavaWeb架构师


其它

  • 源码下载
关注下方公众号,回复:Java8.code

完整教程PDF版本下载

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值