Java 日期时间

Posted 爱吃西瓜的番茄酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 日期时间相关的知识,希望对你有一定的参考价值。

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数数来实例化 Date 对象。

1、使用当前日期和时间来初始化对象。

Date()

2、接收一个参数,该参数是从1970年1月1日起的毫秒数。

Date(long millisec)

获取当前日期时间

使用 Date 对象的 toString() 方法来打印当前日期和时间,如下所示:

import java.util.Date;  // 导入Date类

public class DateDemo {
    public static void main(String[] args){
        // 初始化Date对象
        Date date = new Date();
        
        // 使用toString()函数显示日期时间
        System.out.println(date.toString());
    }
}

输出:

Sun Apr 12 20:41:26 CST 2020

使用 SimpleDateFormat 格式化日期

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。

SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

例如:

import java.util.Date;  // 导入Date类

public class DateDemo {
    public static void main(String[] args){
        // 初始化Date对象
        Date date = new Date();

        // 声明一个SimpleDateFormat对象,并指定格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        // 输出时间
        System.out.println("当前时间为:"+ sdf.format(date));
    }
}

输出:

当前时间为:2020-04-12 08:47:50

这一句:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

有的格式大写,有的格式小写,例如 MM 是月份(月份一定要大写),mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

日期和时间的格式化编码

时间模式字符串用来指定时间格式。

定义如下:

使用printf格式化日期

printf 方法使用两个字母格式,它以 %t 开头并且以下面表格中的一个字母结尾。

实例:

import java.util.Date;  // 导入Date类

public class DateDemo {
    public static void main(String[] args){
        // 初始化Date对象
        Date date = new Date();

        // c的使用
        System.out.printf("全部日期和时间信息:%tc%n", date);
        // F的使用
        System.out.printf("年-月-日格式:%tF%n", date);
        // D的使用
        System.out.printf("月/日/年格式:%tD%n",date);
        // r的使用
        System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
        // T的使用
        System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
        // R的使用
        System.out.printf("HH:MM格式(24时制):%tR",date);
    }
}

输出:

全部日期和时间信息:周日 4月 12 21:01:49 CST 2020
年-月-日格式:2020-04-12
月/日/年格式:04/12/20
HH:MM:SS PM格式(12时制):09:01:49 下午
HH:MM:SS格式(24时制):21:01:49
HH:MM格式(24时制):21:01

Java 休眠(sleep)

Thread.sleep()方法可以让当前线程进入停滞状态。

实例:

import java.util.Date;

public class SleepDemo {
    public static void main(String[] args){
        try {
            System.out.println(new Date());
            Thread.sleep(1000*3);  // 休眠3秒
            System.out.println(new Date());
        }
        catch (Exception e){
            System.out.println("Got an exception!");
        }
    }
}

输出:

Sun Apr 12 21:17:52 CST 2020
Sun Apr 12 21:17:55 CST 2020

Calendar类


使用Calendar 类可以设置和获取日期数据的特定部分。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

创建一个代表系统当前日期的Calendar对象:

Calendar c = Calendar.getInstance();//默认是当前日期

Calendar类对象字段类型

Calendar类对象信息的set设置

如:

Calendar c1 = Calendar.getInstance();
c1.set(2020, 4, 12);//把Calendar对象c1的年月日分别设这为:2020、4、12

2、利用字段类型设置

c1.set(Calendar.DATE,10); // 把 c1对象代表的日期设置为10号
c1.set(Calendar.YEAR,2008); // 把c1对象代表的年份设置为2019年

Calendar类对象信息的add设置

c1.add(Calendar.DATE, 10); // 把c1对象的日期加上10
c1.add(Calendar.DATE, -10); // 把c1对象的日期减去10

每天学习一点点,每天进步一点点。

以上是关于Java 日期时间的主要内容,如果未能解决你的问题,请参考以下文章

JS代码片段:一个日期离现在多久了

sql 日期转换代码片段 - Dato,120,konvertere

日期选择器对话框在片段中不起作用[关闭]

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

如何从片段中调用 getSupportFragmentManager()?

java字符串格式转换成日期格式