java--日期与时间(Date/SimpleDateFormat/Calendar/LocalDateTime/Instant/DateTimeFormatter)

一、时间戳与Date类

class JavaStudy {
    static StringBuffer stringBuffer = new StringBuffer("I am a good boy");
    static String str2 = ", are you?";

    public static void main(String[] args) {
        System.out.println("************************获取时间戳********************");
        long time = System.currentTimeMillis();
        System.out.println(time);

        System.out.println("************************当前时间的Date对象********************");
        Date date = new Date(); //当前时间的Date对象
        System.out.println(date);
        System.out.println(date.toString());

        System.out.println("************************通过时间戳创建Date对象********************");
        Date utilDate1 = new Date(1622192520469L);
        System.out.println(utilDate1.toString());
        System.out.println(utilDate1.getTime()); // 获取时间戳

        System.out.println("************************java.sql.Date********************");
        java.sql.Date date2 = new java.sql.Date(162219250469L);
        System.out.println(date2.toString());
        java.sql.Date date3 = new java.sql.Date(utilDate1.getTime()); // java.util.Date 转为 java.sql.Date
        System.out.println(date3);
    }
}

//输出:
************************获取时间戳********************
1622193056414
************************当前时间的Date对象********************
Fri May 28 17:10:56 CST 2021
Fri May 28 17:10:56 CST 2021
************************通过时间戳创建Date对象********************
Fri May 28 17:02:00 CST 2021
1622192520469
************************java.sql.Date********************
1975-02-21
2021-05-28

二、java.text.SimpleDateFormat–日期格式化

class JavaStudy {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat();//默认格式,无参
        Date date = new Date();
        System.out.println("*********************格式化*********************");
        String str = sdf.format(date);
        System.out.println(str);
        System.out.println("*********************解析,反向格式化*********************");
        String dateStr = "2021/5/28 下午5:17";  //默认格式
        Date date1 = sdf.parse(dateStr);
        System.out.println(date1.toString());
        System.out.println("*******************");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//指定格式
        String dateStr1 = "2021-05-28 05:22:28";
        Date date2 = sdf1.parse(dateStr1);
        System.out.println(date2);
    }
}

// 输出:
*********************格式化*********************
2021/5/28 下午5:28
*********************解析,反向格式化*********************
Fri May 28 17:17:00 CST 2021
*******************
Fri May 28 05:22:28 CST 2021

三、Calendar类

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

class JavaStudy {
    public static void main(String[] args) {
        GregorianCalendar d = new GregorianCalendar(); // 与Calendar.getInstance()相同
        System.out.println("*******************获取当前对象的时间日期,默认当前时间*****************");
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH)+1); // month从0开始
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//周日为1,周六为7
        System.out.println("**************************设置当前对象的时间日期***********************");
        calendar.set(Calendar.DAY_OF_MONTH,22);
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println("**************************设置当前对象的时间日期***********************");
        calendar.add(Calendar.DAY_OF_MONTH,22);
        System.out.println(calendar.get(Calendar.MONTH)+1);
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

        System.out.println("**************************与Date对象的转换***********************");
        Date date = calendar.getTime();
        System.out.println(date.toString());

        Date date1 = new Date();
        calendar.setTime(date1);
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
    }
}

// 输出:
*******************获取当前对象的时间日期,默认当前时间*****************
2021
5
29
7
**************************设置当前对象的时间日期***********************
22
**************************设置当前对象的时间日期***********************
6
13
**************************Date对象的转换***********************
Sun Jun 13 09:46:26 CST 2021
29

四、LocalDate、LocalTime、LocalDateTime:

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

class JavaStudy {
    public static void main(String[] args) {
        System.out.println("*****************获取当前日期或时间******************");
        LocalDate localDate = LocalDate.now();
        LocalTime localTime = LocalTime.now();
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDate);
        System.out.println(localTime);
        System.out.println(localDateTime);

        System.out.println("*****************设置固定时间--of()修改原对象******************");
        System.out.println("******************LocalDateTime*****************");
        LocalDateTime localDateTime1 = LocalDateTime.of(2021, 5, 29, 9, 53, 0);
        System.out.println(localDateTime1.getYear());
        System.out.println(localDateTime1.getMonth());
        System.out.println(localDateTime1.getDayOfMonth());
        System.out.println(localDateTime1.getHour());
        System.out.println(localDateTime1.getMinute());
        System.out.println(localDateTime1.getSecond());
        System.out.println("******************LocalDate*****************");
        LocalDate localDate1 = LocalDate.of(2021, 5, 29);
        System.out.println(localDate1.getYear());
        System.out.println(localDate1.getMonth());
        System.out.println(localDate1.getDayOfMonth());
        System.out.println(localDate1.getDayOfWeek());
        System.out.println("*******************LocalTime****************");
        LocalTime localTime1 = LocalTime.of(9, 53, 0,99);
        System.out.println(localTime1.getHour());
        System.out.println(localTime1.getMinute());
        System.out.println(localTime1.getSecond());
        System.out.println(localTime1.getNano()); //获取纳秒

        System.out.println("*****************设置固定时间--with()不修改原对象******************");
        LocalDateTime localDateTime2 = localDateTime1.withDayOfMonth(22);
        System.out.println(localDateTime1);
        System.out.println(localDateTime2);
        System.out.println("*****************时间加减--plus()不修改原对象******************");
        LocalDateTime localDateTime3 = localDateTime1.plusDays(-99);
        System.out.println(localDateTime3);
    }
}
// 输出:
*****************获取当前日期或时间******************
2021-05-29
10:10:27.064265500
2021-05-29T10:10:27.064265500
*****************设置固定时间--of()修改原对象******************
******************LocalDateTime*****************
2021
MAY
29
9
53
0
******************LocalDate*****************
2021
MAY
29
SATURDAY
*******************LocalTime****************
9
53
0
99
*****************设置固定时间--with()不修改原对象******************
2021-05-29T09:53
2021-05-22T09:53
*****************时间加减--plus()不修改原对象******************
2021-02-19T09:53

五、DateTimeFormatter格式化

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;

class JavaStudy {
    public static void main(String[] args) {
        System.out.println("********预定义方式********");
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        LocalDateTime localDateTime = LocalDateTime.now();
        String format = dateTimeFormatter.format(localDateTime);
        System.out.println(localDateTime);
        System.out.println(format);
        TemporalAccessor parse = dateTimeFormatter.parse(format); // 解析
        System.out.println(parse);

        System.out.println("********本地化相关的格式********");
        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
        System.out.println(dateTimeFormatter1.format(localDateTime));

        DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
        System.out.println(dateTimeFormatter2.format(LocalDate.now()));

        System.out.println("********自定义格式********");
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        String format1 = dtf.format(LocalDateTime.now());
        System.out.println(format1);

        TemporalAccessor parse1 = dtf.parse("2021-05-29 10:31:34");
        System.out.println(parse1);
    }
}
// 输出
********预定义方式********
2021-05-29T21:39:32.448
2021-05-29T21:39:32.448
{},ISO resolved to 2021-05-29T21:39:32.448
********本地化相关的格式********
21-5-29 下午9:39
2021529日 星期六
********自定义格式********
2021-05-29 09:39:32
{NanoOfSecond=0, MicroOfSecond=0, SecondOfMinute=34, HourOfAmPm=10, MinuteOfHour=31, MilliOfSecond=0},ISO resolved to 2021-05-29

六、Instant

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维小菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值