jav常用类-时间处理相关类

时间处理相关类

https://www.bilibili.com/video/BV1bW411o7TJ?p=9

1970年1月1日00:00:00为基准时间,度量单位为毫秒

long now = System.currentTimeMillis();

public class Demo00 {
    public static void main(String[] args) {
        Date d = new Date(2000);
        System.out.println(d.getTime()); // 2000
        Date d2 = new Date();
        System.out.println(d2.getTime()); // 当前电脑的时刻 1590648121187
        System.out.println(d2.after(d)); // true
        Date d3 = new Date(2020,2,10);
        System.out.println(d3); // Wed Mar 10 00:00:00 PST 3920
      // year - 1900; mon:0-11
        
    }
}

遇到日期处理,使用calendar

DateFormat class

时间对象转化为指定格式的字符串,以及把指定格式的字符串转换为时间对象

DateFormat 是一个抽象类,一般使用他的子类SimpleDateFormat类来实现

package com.commonclass.timeclass;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

// 测试时间对象和字符串对象之间的互相转换
// dateformat抽象类和simpledateformate实现类的使用
public class Demo01 {
    public static void main(String[] args) throws ParseException {
        // 把时间对象按照"格式字符串指定的格式"转为相应的字符串
        // 需要定义格式
        DateFormat df = new SimpleDateFormat("yyyy年MM-dd hh:mm:ss");
        String str = df.format(new Date(40000000));
        System.out.println(str); // 1970年01-01 03:06:40

        // 把字符串按照"格式字符串指定的格式"专程相应的时间对象
        DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
        Date date = df2.parse("2020年05月28日 11时30分00秒");
        System.out.println(date); // Thu May 28 11:30:00 PDT 2020

        // 测试其他的格式字符
        DateFormat df3 = new SimpleDateFormat("D");
        String str3 = df3.format(new Date());
        System.out.println(str3); // 149 是今年的第149天
    }
}

calendar日历类

抽象类,提供日期计算的相关功能

注意月份的表示:0 - 11

日期的获取与设置
package com.commonclass.timeclass;
import java.util.Calendar;
import java.util.GregorianCalendar;

// test calendar
public class Demo02 {
    public static void main(String[] args) {
        // 创建日期类
        Calendar calendar = new GregorianCalendar(2999,10,9,22,10,50);

        // 获得日期的相关元素 get方法
        int day = calendar.get(Calendar.DATE);
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int weekday = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println(year); // 2999
        System.out.println(month); // 10 - November
        System.out.println(weekday); // 7 [1(sunday)-7[saturday]]
        System.out.println(day); // 9

        // 设置日期的相关元素
        Calendar c2 = new GregorianCalendar(); // 不设置参数,c2为当前日期
        c2.set(Calendar.YEAR,8012);
        System.out.println(c2);
    }
}
日期的计算
package com.commonclass.timeclass;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

// 日期的计算
public class Demo03 {
    public static void main(String[] args) {
        // 计算
        Calendar c = new GregorianCalendar();
        c.add(Calendar.DATE,100); // 日期往后一百天
        System.out.println(c); // YEAR=2020,MONTH=8,WEEK_OF_YEAR=36

        // 日期对象和时间对象的转化
        Date d = c.getTime(); // 日期对象转为时间对象
        Calendar c1 = new GregorianCalendar();
        c1.setTime(new Date()); // 时间对象转为日期类
        System.out.println(d); // Sat Sep 05 11:56:45 PDT 2020
        printCalendar(c1); // 2020年5月28日 0时7分5秒 周4
    }
    public static void printCalendar(Calendar c){
        // print yyyy年MM月dd日 hh时mm分ss秒 周几
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;
        int date = c.get(Calendar.DAY_OF_MONTH);
        int weekday = c.get(Calendar.DAY_OF_WEEK)-1;
        String weekday2 = weekday == 0 ? "日" : weekday + "";
        int hour = c.get(Calendar.HOUR);
        int minute = c.get(Calendar.MINUTE);
        int second = c.get(Calendar.SECOND);

        System.out.println(year+"年"+month+"月"+date+"日 "+hour+"时"
                            +minute+"分"+second+"秒 "+ "周"+weekday2);
    }
}
可视化日历程序
package com.commonclass.timeclass;


import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

// 可视化日历程序
public class Demo04 {
    public static void main(String[] args) throws ParseException {
        System.out.println("please enter date(format:2020-4-5)");
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
//        String str = "2028-9-10";
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date date = df.parse(str); // 字符串转为时间对象

        Calendar c = new GregorianCalendar(); // 日期类
        c.setTime(date); // 时间对象转为日期对象

        int day = c.get(Calendar.DAY_OF_MONTH); // 获取day
        int maxday = c.getActualMaximum(Calendar.DATE); // 获取每月最大天数

        System.out.println("s\tm\tt\tw\tth\tf\tsa");

        c.set(Calendar.DAY_OF_MONTH,1);
        for(int i =0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++){
            System.out.print("\t"); // 将第一天的日期和周对齐
        }

        for(int i = 1;i<=maxday;i++){
            if (day == c.get(Calendar.DAY_OF_MONTH)){
                System.out.print(c.get(Calendar.DAY_OF_MONTH)+"*\t");
            }else{ System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t");}

            if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
                System.out.println(); // 换行
            }
            c.add(Calendar.DAY_OF_MONTH,1);
        }
    }
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值