栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java时间与日期

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java时间与日期

一、前言

在 JDK 8 之前,Java 语言为我们提供了两个类用于操作时间,它们分别是:java.util.Date 和 java.util.Calendar,

但在 JDK 8 的时候为了解决旧时间操作类的一些缺陷,提供了几个新的类,用于操作时间和人气,

它们分别是:LocalTime、LocalDateTime、Instant,都位于 java.time 包下。

时间的操作在我们日常的开发中经常见到,比如,业务数据都要记录创建时间和修改时间,并要把这些时间格式化之后显示到前端页面,再比如我们需要计算业务数据的时间间隔等,都离不开对时间的操作。

时间戳:时间戳是指格林威治时间 1970-01-01 00:00:00(北京时间 1970-01-01 08:00:00)起至现在的总秒数。

 

二、获取时间

类

获取时间

说明

使用频率

java.util.Date

new Date()

Date对象

少用

System

System.currentTimeMillis()

时间戳

常用

java.util.Calendar

Calendar.getInstance().getTime()

Date升级版

较常用

java.time.LocalDate

LocalDate.now()

只有日期

推荐 (JDK1.8新API)

java.time.LocalTime

LocalTime.now()

只有时间

推荐 (JDK1.8新API)

java.time.LocalDateTime

LocalDateTime.now()

日期时间

推荐 (JDK1.8新API)

java.time.ZonedDateTime

ZonedDateTime.now()

有时区

推荐 (JDK1.8新API)

Instant

Instant.now()

时刻

推荐 (JDK1.8新API)

import java.text.SimpleDateFormat;
import java.time.*;
import java.util.Calendar;
import java.util.Date;


public class CurrentTime {
    public static void main(String[] args) {
        //getByDate();
        //getBySystem();
        //getByCalendar();
        //getByLocalDate();
        //getByLocalTime();
        //getByLocalDateTime();
        //getByZonedDateTime();
        //getByInstant();
    }
    
    // 使用java.util.Date类
    public static void getByDate(){
        Date date = new Date();
        //SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //System.out.println(format.format(date));
        System.out.println(date);
    }
    // 使用System类
    public static void getBySystem(){
        long l = System.currentTimeMillis();
        Date date = new Date(l);
        System.out.println(date);
    }
    // 使用Calendar类
    public static void getByCalendar(){
        Date time = Calendar.getInstance().getTime();
        System.out.println(time);
    }
    // 使用LocalDate类:只有日期,无时间
    public static void getByLocalDate(){
        LocalDate now = LocalDate.now();
        System.out.println(now);
    }
    // 使用LocalTime类:只有时间,无日期
    public static void getByLocalTime(){
        LocalTime now = LocalTime.now();
        System.out.println(now);
    }
    // 使用LocalDateTime类
    public static void getByLocalDateTime(){
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
    }
    // 使用ZonedDateTime类
    public static void getByZonedDateTime(){
        ZonedDateTime now = ZonedDateTime.now();
        System.out.println(now);
    }
    // 使用Instant类
    public static void getByInstant(){
        Instant now = Instant.now();
        System.out.println(now);
    }
    
}

 

三、格式化时间 1、JDK8之前的操作
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(new Date()));  // output:2022-08-06 21:46:22

SimpleDateFormat 构造参数的含义,请参考以下表格信息:

字符

含义

示例

y

年

yyyy-1996

M

月

MM-07

d

月中的天数

dd-02

D

年中的天数

121

E

星期几

星期四

H

小时数(0-23)

HH-23

h

小时数(0-12)

hh-11

m

分钟数

mm-02

s

秒数

ss-03

Z

时区

+0800

使用示例:

  • 获取星期几:new SimpleDateFormat("E").format(new Date())
  • 获取当前时区:new SimpleDateFormat("Z").format(new Date*())

2、JDK8的操作
// 时间格式化①
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String timeFormat = dateTimeFormatter.format(LocalDateTime.now());
System.out.println(timeFormat);  // output:2019-08-16 21:15:43

// 时间格式化②
String timeFormat2 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(timeFormat2);    // output:2019-08-16 21:17:48

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号