9、jdk8 localDateTime

1、介绍

jdk 8 借鉴了joda-time,提供了一个好用的localDateTime类对时间进行操作,

2、例子:

package com.surfilter.mass;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * [@Author](https://my.oschina.net/arthor) liufu
 * @CreateTime 2018/5/10  16:53
 */
public class LocalDataTime {
    public static void main(String[] args) {

        //创建localDateTime,时间戳转换为localDatatime
        LocalDateTime dateTime = LocalDateTime.now();
        LocalDateTime dateTime1 = LocalDateTime.of(2018, 2, 1, 12, 24, 30);
        LocalDateTime d = LocalDateTime.ofInstant(Instant.ofEpochMilli(1534383142000L), ZoneId.systemDefault());

        //格式化
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String format = df.format(LocalDateTime.now());
        LocalDateTime parse = LocalDateTime.parse("2018-12-01 11:02:30", df);

        //获取时间戳(必须先指定时区)
        long l1 = dateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
        long l2 = Instant.now().toEpochMilli();
        long l3 = System.currentTimeMillis();

        //和传统date转换
        Date from = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
        LocalDateTime localDateTime = LocalDateTime.ofInstant(from.toInstant(), ZoneId.systemDefault());

        //获取年月日
        int year = dateTime.getYear();
        int monthValue = dateTime.getMonthValue();
        int dayOfYear = dateTime.getDayOfYear();
        int dayOfMonth = dateTime.getDayOfMonth();
        int hour = dateTime.getHour();
        int minute = dateTime.getMinute();
        int second = dateTime.getSecond();

        //时间比较
        dateTime.isAfter(dateTime1);
        dateTime.isBefore(dateTime1);

        //增加和减少
        dateTime.plusYears(1);
        dateTime.minusYears(1);
        dateTime.plusMonths(1);
        dateTime.minusMinutes(1);
        dateTime.plusDays(1);
        dateTime.minusDays(1);
        dateTime.plusHours(1);
        dateTime.minusHours(1);
        dateTime.plusMinutes(1);
        dateTime.minusMinutes(1);
        dateTime.plusSeconds(1);
        dateTime.minusSeconds(1);
        dateTime.plusNanos(1);
        dateTime.minusNanos(1);

        //转化为localDate和localTime
        dateTime.toLocalDate().toString();
        dateTime.toLocalTime().toString();

        //判断是否是闰年
        boolean leapYear = dateTime.toLocalDate().isLeapYear();

        //ZonedDateTime操作
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zonedDateTime = ZonedDateTime.of(2018, 2, 12, 12, 12, 12, 0, zoneId);
        int year1 = zonedDateTime.getYear();
        zonedDateTime.plusDays(1);

        //获取时间戳
        long l = zonedDateTime.toInstant().toEpochMilli();
    }
}

转载于:https://my.oschina.net/liufukin/blog/2221979

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值