常用日期类

目录

7.1 Date

7.2 Calendar

7.3 SimpleDateFormat

7.4 System

日期操作


7.1 Date

获取当前时间,精确到毫秒,弊端:无法设置时间

注意:

  • 使用java.util.Date包

  • 不要写成data

  • Date中大部分方法被废弃,建议使用Calendar类

import java.util.Date;
​
public static void main(String[] args) {
​
    Date d1 = new Date();
    System.out.println(d1);//Thu Jul 28 14:40:21 CST 2022
​
}

7.2 Calendar

日历类,得到日历类对象,不能使用new,只有一个对象。

使用getInstance()获取当前时间,获取的结果为Calendar类型

Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
//java.util.GregorianCalendar[time=1658990621571,areFieldsSet=true,areAllFieldsSet=true,
// lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,
// minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=6,WEEK_OF_YEAR=31,WEEK_OF_MONTH=5,
// DAY_OF_MONTH=28,DAY_OF_YEAR=209,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=2,
// HOUR_OF_DAY=14,MINUTE=43,SECOND=41,MILLISECOND=571,ZONE_OFFSET=28800000,DST_OFFSET=0]

get() 获取想要的信息

     Calendar calendar = Calendar.getInstance();
​
     System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));//31 返回这个月有多少天
     System.out.println(calendar.get(Calendar.YEAR));//2022 返回当前年份
     System.out.println(calendar.get(Calendar.MONDAY));//6 返回当前月份在数组中的索引值0-11,例如7月他就返回6

set() 设置时间信息,我们可以查看源码来确定参数

Calendar calendar = Calendar.getInstance();
​
//设置月份
calendar.set(calendar.YEAR,10);
​
//设置年月日
calendar.set(2019,5,20);

Date转Calendar

setTIme方法

Date date = new Date();
Calendar calendar = Calendar.getInstance();
//date 转换为Calendar
calendar.setTime(date);

Calendar转Date

getTime方法

Calendar calendar = Calendar.getInstance();
​
//获取当前时间,转换为Date
System.out.println(calendar.getTime());

设置毫秒值

//返回1970-1-1 到calendar时间的毫秒值
System.out.println(calendar.getTimeInMillis());

重点

日历类常用来计算

例如:计算近三个月内的消费记录。那么三个月前的日期怎么获得

Calendar calendar = Calendar.getInstance();
​
//获取当前时间,转换为Date
System.out.println(calendar.getTime());
​
//三个月前的今天
calendar.add(Calendar.MONTH,-3);
System.out.println(calendar.getTime());
//Thu Jul 28 15:14:06 CST 2022
//Thu Apr 28 15:14:06 CST 2022

7.3 SimpleDateFormat

简单的日期格式化,将date转换为字符串。

一般我们获取的时间格式不是我们想要的,因此我们可以使用该对象格式化日期。

Date date = new Date();
​
//日期格式 年-月-日 时:分:秒.毫秒
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
​
System.out.println(simpleDateFormat1.format(date));//2022-07-28 15:24:06.649

7.4 System

该类为系统类,我们可以使用系统类方法的到时间

//获取系统时间
System.currentTimeMillis();
​
//退出JVM,一般用于客户端开发
System.exit();

日期操作

  1. 以格式“2017/08/07 12:00:01 上午” 显示当前时间;

  2. 输入日期,格式为“2017/08/07 08:12”,输出该日期后的10天是什么时间

1.

import java.text.SimpleDateFormat;
import java.util.Date;
​
public class HomeWork3 {
​
    public static void main(String[] args) {
​
        Date date = new Date();
​
        //2017/08/07 12:00:01 上午
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss a" );
​
        String s = simpleDateFormat.format(date);
​
        System.out.println(s);
        
    }
​
}

2.

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入日期,格式为 2022-10-10 15:10");
        String a = sc.nextLine();
        //创建日期格式
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        //将输入的日期格式化 使用parse将字符串转为Date
        Date time = format.parse(a);
        //System.out.println(time);
        //创建日历对象来计算
        Calendar instance = Calendar.getInstance();
        //将Date格式转为日历对象,然后计算10天后
        instance.setTime(time);
        instance.add(Calendar.DATE,10);
        //将计算后的日历对象进行格式化,格式化时要转为Date类,用字符串接收
        String s = format.format(instance.getTime());
        System.out.println(s);
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值