时间、日期处理相关类

在计算机世界,将1970年1月1日00:00:00定位基准时间,每个度量单位是毫秒(一秒的千分之一)

1.Date类(属于util包)

import java.util.Date;
public class Wang {
    public static void main(String[] args) {
        Date t=new Date();
        System.out.println(t);//输出当前时间
        System.out.println(t.getTime());//输出当前毫秒数
        Date t1=new Date(2000);
        System.out.println(t1.before(t));//实际比较的是两个时间的毫秒数
    }
}

 运行结果见下

Tue Apr 20 16:42:10 CST 2021
1618908130444
true
 

2.时间对象与字符串之间的转化

DateFormat是抽象类,SimpleDateFormat是实现类 (都属于text包)

import java.text.ParseException;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class Wang {
    //把时间对象按照“格式字符串指定的格式”转成相应的字符串;
    public static void main(String[] args) throws ParseException {
       DateFormat df =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
       String str =df.format(new Date());
       System.out.println(str);

       //把字符串按照“格式字符串指定的格式”转成相应的时间对象;
        DateFormat df2=new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
        Date date =df2.parse("2020年5月15日 5时6分0秒");//可把异常抛出;
        System.out.println(date);

        //测试其他的格式字符;
        DateFormat df3=new SimpleDateFormat("D");
        String str1 =df3.format(new Date());
        System.out.println(str1);//输出本时间对象所处年份的第几天;

    }
}


 运行结果见下

2021-04-20 05:14:21
Fri May 15 05:06:00 CST 2020
110

3.日期类

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

public class Wang {
    public static void main(String[] args){
        //获得日期的相关元素;
        Calendar calendar =new GregorianCalendar(2999,10,9,22,10,50);
        int year =calendar.get(Calendar.YEAR);
        int month =calendar.get(Calendar.MONTH);
        int day=calendar.get(Calendar.DATE);
        int weekday=calendar.get(Calendar.DAY_OF_WEEK);//星期几。1-7   1:星期日,2:星期一...
        System.out.println(year);
        System.out.println(month);//0-11表示1-12月;
        System.out.println(day);
        System.out.println(weekday);

        //设置日期的相关元素;
        Calendar calendar2=new GregorianCalendar();
        calendar2.set(Calendar.YEAR,8012);
        System.out.println(calendar2);

        //日期的计算;
        Calendar calendar3=new GregorianCalendar();
        calendar.add(Calendar.DATE,100);
        System.out.println(calendar3);

        //日期对象和时间对象的转化;
        Date d4 =calendar3.getTime();
        Calendar calendar4= new GregorianCalendar();
        calendar4.setTime(new Date());

        printCalendar(calendar4);

    }
    public static void printCalendar(Calendar c){
        //打印:1918年10月10日 11时23分45秒 周3
        int year =c.get(Calendar.YEAR);
        int month =c.get(Calendar.MONTH)-1;//0-11
        int date =c.get(Calendar.DATE);
        int dayweek =c.get(Calendar.DAY_OF_WEEK)-1;//1-7 周日、一、二...
        String dayweek2=dayweek==0?"日":dayweek+"";

        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+"秒"+" 周"+dayweek2);

    }





}


4.可视化日历程序

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Wang {
    public static void main(String[] args) throws ParseException {
        System.out.println("请输入日期(格式: 2021-4-21):");
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
        Date date=df.parse(str);//将字符串转为时间对象;
        Calendar calendar=new GregorianCalendar();
        calendar.setTime(date);//将时间对象转为日期对象;

        int day=calendar.get(Calendar.DAY_OF_MONTH);

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        calendar.set(Calendar.DAY_OF_MONTH,1);//将字符串中的天设为该月第一天;
        for(int i=0;i<=calendar.get(Calendar.DAY_OF_WEEK)-1;i++){
            System.out.print("\t");//设置第一行;得到该月第一天为星期几,将其星期几前面置为”\t“;
        }
        int days=calendar.getActualMaximum(Calendar.DATE);//将该月的最大天数赋给变量days;
        for(int i=1;i<=days;i++){
            if(day==calendar.get(Calendar.DAY_OF_MONTH)){
                System.out.print(calendar.get(Calendar.DAY_OF_MONTH)+"*\t");

            }else{
                System.out.print(calendar.get(Calendar.DAY_OF_MONTH)+"\t");
            }





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

            }
        }



    }
}


运行结果见下 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值