Java日期、时间处理代码

小熙就直接贴上时间和日期的简单操作了,先记录下。

package com.chengxi.java_new_characteristics.code;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.text.DateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.util.Calendar;

/**
 * @author chengxi
 * @date 2018/11/12 11:50
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class Date {

    // java8 时间新特性 LocalDateTime (Date Time API − 加强对日期与时间的处理),建议使用这两点
    @Test
    public void localDate(){
        // LocalDateTime——它包含了日期及时间,不过还是没有偏移信息或者时区。
        // 获取当前的日期时间
        LocalDateTime currentTime = LocalDateTime.now();
        System.out.println("当前时间: " + currentTime);

        LocalDate date1 = currentTime.toLocalDate();
        System.out.println("date1: " + date1);

        Month month = currentTime.getMonth();
        int day = currentTime.getDayOfMonth();
        int seconds = currentTime.getSecond();

        System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds);

        // 设置时间(月份、年)10月 2012年
        LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);
        System.out.println("date2: " + date2);

        // LocalDate(描述年月日)——不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。
        System.out.println("LocalDate: "+LocalDate.now());
        // 设置时间(日、月份、年) 12 december 2014
        LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);
        System.out.println("date3: " + date3);

        // LocalTime (描述时分秒)——它代表的是不含日期的时间
        System.out.println("LocalTime: "+LocalTime.now());
        // 设置时间(分钟、小时)22 小时 15 分钟
        LocalTime date4 = LocalTime.of(22, 15);
        System.out.println("date4: " + date4);

        // 解析字符串 年月日(月日必须是两位数且不超过最大实际值)
        System.out.println("LocalDate 解析年月日:"+LocalDate.parse("2019-05-05"));

        // 解析字符串 时分秒
        LocalTime date5 = LocalTime.parse("20:15:30");
        System.out.println("date5: " + date5);

        // 获取本地时间类,调用静态方法获取当前外文时间,再调用转换为本地时间的方法
        System.out.println("转为本地时间:"+LocalDateTime.now().toLocalDate());
    }

    // 之前习惯用法
    @Test
    public void calendar(){
        Calendar calendar = Calendar.getInstance();
        // 整数即为向后加月数,其他字段相同如年、日等
        calendar.add(Calendar.MONTH,1);
        System.out.println("本地时间之后一个月:"+calendar.getTime().toLocaleString());

        BaseDate baseDate = new BaseDate();
        // 将calendar设置到date中,calendar中getTime就是获取时间对象
        baseDate.setDate(calendar.getTime());
        System.out.println("baseDate:"+baseDate.getDate().toLocaleString());

        // 将calendar中获取毫秒值设置进date中,获取date时间值。不建议这种用法,直接由calendar获取date类即可
//        java.util.Date date = new java.util.Date();
//        date.setTime(calendar.getTimeInMillis());
//        System.out.println("时间类设置:"+date.toLocaleString());

//        calendar.add(Calendar.DAY_OF_YEAR,1);   // 一天后
        calendar.add(Calendar.WEEK_OF_YEAR,1);   // 一周后
        System.out.println("本地时间之后的一周:"+calendar.getTime().toLocaleString());

        // toLocaleString的替代方法,目前没有发现比原来更好用
//        System.out.println("本地时间之后一个月:"+DateFormat.getDateInstance().format(new java.util.Date()));

        // 负数即为向前减数
        calendar.add(Calendar.MONTH,-2);
        System.out.println("本地时间之前一个月:"+calendar.getTime().toLocaleString());
        
		// 国外时间比国内多一个月,所以月份要减一
        calendar.set(2019,1 -1,1);
        System.out.println("修改设置后的时间:"+calendar.getTime().toLocaleString());
    }

}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值