Java对时间进行操作(LocalDateTime,Calendar)

简介: 题记:Java的时间日期API一直以来都是被诟病的东西,为了解决这一问题,Java 8中引入了新的时间日期API,其中包括LocalDate、LocalTime、LocalDateTime、Clock、Instant等类,这些的类的设计都使用了不变模式,因此是线程安全的设计。

题记:

Java的时间日期API一直以来都是被诟病的东西,为了解决这一问题,Java 8中引入了新的时间日期API,其中包括LocalDate、LocalTime、LocalDateTime、Clock、Instant等类,这些的类的设计都使用了不变模式,因此是线程安全的设计。

一、如下有详细的说明:

package com.gws;

import java.text.SimpleDateFormat;
import java.time.Clock;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author:wangdong
 * @description:Java对日期和时间的处理
 */
public class DateTimeTest {
    public static void main(String[] args) {

        //一、获取当前年月日时分秒
        //在Jdk8之前可以用Calendar对时间做处理
        // 创建java.util.Calendar 实例,调用其get()方法传入不同的参数即可获得参数所对应的值
        //实例化Calendar
        Calendar calendar = Calendar.getInstance();
        //获取年份
        System.out.println(calendar.get(Calendar.YEAR));
        //获取月份,注意这个方法Calendar.MONTH,获取的值是0-11
        //例如我是419执行的值,输出是3
        System.out.println(calendar.get(Calendar.MONTH));
        //获取当月日期
        System.out.println(calendar.get(Calendar.DATE));
        //获取当天的值
        //Field number for <code>get</code> and <code>set</code> indicating the
        //hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
        //E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22
        //pm下午十点就是对应22,我现在是在下午7点多执行的程序,输出的是19
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
        //获取当前的分钟,当前58
        System.out.println(calendar.get(Calendar.MINUTE));
        //获取当前的秒
        System.out.println(calendar.get(Calendar.SECOND));

        //获取当前年月日时分秒
        //在jdk8时候,引入了一个新的类,LocalDateTime
        //例如获取当前的年月日时分秒
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime.getYear());
        //这个的月份是从1-12月份表示的
        //获取的是英文
        System.out.println(localDateTime.getMonth());
        //获取的是中文
        System.out.println(localDateTime.getMonthValue());
        System.out.println(localDateTime.getDayOfMonth());
        System.out.println(localDateTime.getHour());
        System.out.println(localDateTime.getMinute());
        System.out.println(localDateTime.getSecond());

        //二、取得从197011000秒到现在的毫秒数
        //获取毫秒
        System.out.println(Calendar.getInstance().getTimeInMillis());
        System.out.println(System.currentTimeMillis());
        //Jdk8,Clock获取毫秒
        System.out.println(Clock.systemDefaultZone().millis());

        //三、获取当月的最后一天
        System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

        //四、怎么格式化日期
        //java.text.DataFormat 的子类(如SimpleDateFormat类)中的format(Date)方法可将日期格式化。
        //Java 8中可以用java.time.format.DateTimeFormatter来格式化时间日期,代码如下所示。
        //按照当前格式,打印当前日期,2018/04/19 20:17:08
        SimpleDateFormat dateFormat =  new SimpleDateFormat("YYYY/MM/dd HH:MM:SS");
        Date date = new Date();
        System.out.println(dateFormat.format(date));
        //在Jdk8中格式化时间操作
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("YYYY/MM/dd");
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate.format(dateTimeFormatter));

        //五、打印昨天的当前时刻
        calendar.add(Calendar.DATE,-1);
        System.out.println(calendar.getTime());
        //通过jdk8的操作
        LocalDateTime today = LocalDateTime.now();
        LocalDateTime yesterday = today.minusDays(1);
        System.out.println(yesterday);

    }
}

二、输出的结果

2018
3
19
20
25
11
2018
APRIL
4
19
20
25
11
1524140711159
1524140711159
1524140711159
30
2018/04/19 20:04:168
2018/04/19
Wed Apr 18 20:25:11 CST 2018
2018-04-18T20:25:11.184

好了,很多东西需要自己去慢慢尝试!

目录
相关文章
|
4月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
4月前
|
Java
Calendar类在Java中的高级应用与使用技巧
Calendar类在Java中的高级应用与使用技巧
|
5月前
|
存储 Java
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
126 0
|
2月前
|
安全 Java API
时间日期API(Date,SimpleDateFormat,Calendar)+java8新增日期API (LocalTime,LocalDate,LocalDateTime)
这篇文章介绍了Java中处理日期和时间的API,包括旧的日期API(Date、SimpleDateFormat、Calendar)和Java 8引入的新日期API(LocalTime、LocalDate、LocalDateTime)。文章详细解释了这些类/接口的方法和用途,并通过代码示例展示了如何使用它们。此外,还讨论了新旧API的区别,新API的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
2月前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
725 4
|
4月前
|
存储 Java 索引
Java ArrayList操作指南:如何移除并返回第一个元素
通过上述方法,你可以方便地从Java的 `ArrayList` 中移除并返回第一个元素。这种操作在日常编程中非常常见,是处理列表时的基本技能之一。希望这篇指南能帮助你更好地理解和运用Java的 `ArrayList`。
50 4
|
4月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之使用ODPS Tunnel Upload功能时,遇到报错:Java 堆内存不足,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
Java 调度
Calendar类在Java中的应用
Calendar类在Java中的应用
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
5月前
|
Java 调度
Calendar类在Java中的应用
Calendar类在Java中的应用