设为首页 加入收藏

TOP

日期与时间【Date/SimpleDateFormat/Calendar】(一)
2023-07-25 21:27:25 】 浏览:45
Tags:时间 Date/SimpleDateFormat/Calendar

视频链接:https://www.bilibili.com/video/BV1Cv411372m?p=121&vd_source=9140dcc493e34a9f4e95ca2f8f71bbd3

1 Data

1.1 Date类概述

  1. Date类的对象在java中代表的是当前所在系统的此刻日期时间。
  2. Date的构造器
    public Date():创建一个Date对象,代表的是系统当前此刻日期时间。
  3. Date的常用方法
    public long getTime():获取时间对象的毫秒值

1.2 Date类记录时间的2种形式

  1. 日期对象
//1、创建一个Date对象,代表的是系统当前此刻日期时间。
Date date =new Date();
System.out.println(date);  //Fri May 05 21:09:54 CST 2023
  1. 时间毫秒值
  • 指的是从1970年1月1日 00:00:00走到此刻的总的毫秒数
//2、获取时间毫秒值
long time = date.getTime();
System.out.println(time);   //1683292462323
long times = System.currentTimeMillis();
System.out.println(times);  //1683292462336

1.3 案例

  • 请计算出当前时间为往后走1小时121秒之后的时间是多少
  • 时间毫秒值→日期对象
    1. 构造器
      public Date(long time):把时间毫秒值转换成Date日期对象
    2. Date方法
      public void setTime(long time):设置日期对象的时间为当前时间毫秒值对应的时间
//构造器
long time = System.currentTimeMillis();
time += (60 * 60 + 121) *1000;
Date d2 = new Date(time);
System.out.println(d2);
//Date方法
Date d3 = new Date();
d3.setDate(time);
System.out.println(d3);

2 SimpleDateFormat

2.1 SimpleDateFormat概述

  • 可以对Date对象或时间毫秒值格式化我们喜欢的时间形式。
  • 可以把字符串的时间形式解析成对象格式
  • 格式化的时间形式的常用的模式
    • y-年;M-月;d-日;
    • H-时;m-分;s-秒;
    • EEE-星期几;a-上午/下午

1. SimpleDateFormat的构造器

构造器 说明
public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat,使用指定的格式
//1、日期对象
Date date = new Date();
System.out.println(date);  //Sat May 06 08:19:11 CST 2023
// 2、格式化这个日期对象(指定最终格式化的形式)   EEE 代表去星期几  a 取上午还是下午
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss  EEE a ");
// 3、开始格式化日期对象成为字符串的形式
String rs = sdf.format(date);
System.out.println(rs);  //2023年05月06日 08:19:11  星期六 上午
//4、格式化时间毫秒值
//需求:121秒之后的时间是多少
long time = System.currentTimeMillis()+121*1000;
String rs2 = sdf.format(time);
System.out.println(rs2);  //2023年05月06日 08:21:12  星期六 上午

2. SimpleDateFormat的格式化方法

格式化方法 说明
public final String(Date date) 将日期格式化成日期/时间字符串
public final String(Object time) 将时间毫秒值化成日期/时间字符串

3. SimpleDateFormat解析字符串时间成为日期对象

解析方法 说明
public Date pasre(String source) 从给定字符串的开始解析文本以生成日期
package com.example.test.simpledateformat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo02 {
    public static void main(String[] args) throws ParseException {
        //SimpleDateFormat解析字符串时间成为日期对象
        //计算出2021年08月06日11点11分11秒,往后走2天14小时49分06秒后的时间是多少??
        // 1、把字符串时间拿到程序中来
        String dateStr = "2021年08月06日 11:11:11";
        // 2、把字符串时间解析成日期对象 !!形式必须与被解析时间的形式完全一样,否则运行时解析报错
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = sdf.parse(dateStr);
        // 3、往后走2天14小时49分06秒
        long time = d.getTime() + (2L*24*60*60+14*60*60+49*60+6)*1000;
        // 4、格式化时间毫秒值
        String rs = sdf.format(time);
        System.out.println(rs);
    }
}

2.2 总结

  1. SimpleDateFormat可以格式化日期对象和时间毫秒值。
  2. SimpleDateFormat调用parse方法对字符串时间进行解析,要求解析格式必须与被解析格式一样。
  3. sdf.format(Date date)指定日期格式,返回类型为字符串
  4. sdf.parse(String a) 将字符串日期换成日期格式的日期,返回类型为日期格式Date

2.4 案例

需求

  • 活动开始时间:2021-11-11 00:00:00
  • 活动结束时间:2021-11-11 00:10:00
  • 小贾下单并付款的时间为:2020年11月11日 00:03:47
  • 小皮下单并付款的时间为:2022年11月11日 00:10:11
  • 用代码说明这两位同学有没有参加上秒杀活动?
package com.example.test.simpledateformat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇26基于java的电影院售票管理系统.. 下一篇2023-5-6第一次创建博客的第一篇..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目