Java中Date、Calender、long和String相互转化

时间类库

Date和Calendar对象的创建

Date对象的创建:Date可以通过new关键字创建新对象,经常通过无参或传入一个long类型参数的方式来创建。

   		// 新建一个Date对象,不传参数时默认赋值为系统时间
        Date date = new Date();
		// 将long类型的值作为参数传入Date的构造方法,
		//创建出一个用long值转换而来的新对象
        date = new Date(longTime);

Calendar对象的创建:由于Calendar类是一个抽象类,所以无法直接通过new关键字来创建,只能通过调用其本身的getInstance()方法创建对象,来返回一个Calendar类型的对象。getInstanc()方法也可以将时区和区域中其中一个或者两个都作为参数传入,以此来设置Calendar对象的时区和区域,没有传入参数的变量将采用默认的值。

		// Calendar是抽象类,无法通过new关键字直接创建,
        // 可以调用其本身的getInstance()方法创建对象,
        //返回一个Calender类型的对象
		Calendar calendar = Calendar.getInstance();

Date、Calender、long和String相互转化

在这里插入图片描述

1、Date对象和long的互转:

标准基准时间(称为“纪元”):即1970年1月1日00:00:00 GMT。
long值:表示自标准基准时间(称为“纪元”)以来的指定毫秒数。
(1)Date转long值:

        // 新建一个Date对象,不传参数时默认赋值为系统时间
        Date date = new Date();
        System.out.println("Date:" + date);
        // Date ->  long
        // date.getTime()返回一个long类型的值
        long longTime = date.getTime();
        System.out.println("long: "+ longTime);

运行结果:
在这里插入图片描述

(2)long值转Date

		//获得一个long类型的时间
		long longTime = date.getTime();
        System.out.println("long: "+ longTime);
        // long -> Date
        // 将long类型的值作为参数传入Date的构造方法,创建出一个新对象
        date = new Date(longTime);
        System.out.println("Date:" + date);

运行结果:
在这里插入图片描述

2、Date和String的互转

Date和String之间的相互转化,依靠SimpleFormat对象来充当它们之间的“翻译官”,可以将SimpleFormat对象想象成一个翻译软件,String和Date是两个语种,通过SimpleFormat对象调用format()可以将Date转换为String,调用parse()方法可以将String转换为Date。
(1)创建SimpleFormat对象,其中:
用y表示年份,一般用"yyyy"或"yy"来表示
用M表示月份,一般用"MM"来表示
用d表示日份,一般用"dd"来表示
用H表示小时,一般用"HH"来表示
用m表示分钟,一般用"mm"来表示
用s表示秒数,一般用"ss"来表示
用S表示毫秒数,毫秒数不常用,一般用"S"、“SS”、"SS"来表示
(2)Date转为String:通过调用format()方法,系统会将你指定的时间格式中的y、M、d、H、m、s、S替换成Date对象的年份、月份、日份、小时、分钟、秒数、毫秒数的值,并拼接成字符串。

		// 时间格式:yyyy-MM-dd HH:mm:ss:SS
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS");
		//时间格式:yyyy年MM月dd日 HH时mm分ss秒
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        //时间格式:yyyy-MM-dd
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
        //时间格式:HH:mm:ss:SSS
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("HH:mm:ss:SSS");
        
        //将同一个Date转化为多种格式,用多个String来接收
        String string = simpleDateFormat.format(date);
        String string1 = simpleDateFormat1.format(date);
        String string2 = simpleDateFormat2.format(date);
        String string3 = simpleDateFormat3.format(date);
        //打印各个字符串
        System.out.println("String: " + string);
        System.out.println("String1: " + string1);
        System.out.println("String2: " + string2);
        System.out.println("String3: " + string3);

运行结果:
在这里插入图片描述

(3)String转为Date:通过调用parse()方法,系统会将字符串根据SimpleFormat对象指定的格式,提取出相对应的年份、月份、日份、小时、分钟、秒数、毫秒数的值,未选择的变量会采用标准基准时间(称为“纪元”),即1970年1月1日00:00:00 GMT。

		// String -> Date 用SimpleDateFormat对象调用parse()方法,把想要转化的String对象作为参数传入
        // String对象必须符合创建用SimpleDateFormat对象时作为参数传入的格式
        string = "2020-2-3 2:3:3:2";
        date = simpleDateFormat.parse(string);
        System.out.println("Date:" + date);
        string1 = "19934年10月23日 11时23分43秒";
        date = simpleDateFormat1.parse(string1);
        System.out.println("Date1:" + date);
        string2 = "2020-2-3";
        date = simpleDateFormat2.parse(string2);
        System.out.println("Date2:" + date);
        string3 = "2:3:3:2";
        date = simpleDateFormat3.parse(string3);
        System.out.println("Date3:" + date);

运行结果:
在这里插入图片描述

3、Calendar转化为long

直接用Calendar对象调用getTimeInMillis()方法,返回一个long值

		// Calendar -> long
        // 直接对Calendar对象调用getTimeInMillis()方法,返回一个long值
        longTime = calendar.getTimeInMillis();
        System.out.println("longTime: " + longTime);

运行结果:
在这里插入图片描述

4、Calendar和Date互转

Calendar拥有long类型的Time属性来存储时间。
(1)Calendar转为Date:直接让Calendar对象调用getTime()方法,系统会将Calendar对象的long类型的Time属性转化为Date对象并返回。

		// Calendar -> Date
        // 直接让Calendar对象调用getTime()方法,返回一个Date对象
        date = calendar.getTime();
        System.out.println("Date:" + date);

运行结果:
在这里插入图片描述
(2)Date转为Calendar:
直接让Calendar对象调用setTime()方法,系统会将Date对象转换为long类型的值并赋予Calendar对象的long类型的Time属性,以此达到改变Calendar对象的时间。

		// Date -> Calendar
        // 直接对Calendar对象调用setTime方法,传入一个Date对象的参数,设置Calendar对象的属性
        // 其原理是将输入的Date对象转化为long值,再将这个long值作为参数传入setTimeInMillis()方法,
        // 传入的long值作为Calendar对象的时间来存储
        calendar.setTime(date);
        System.out.println("Calendar: " + calendar.toString());
        System.out.println("Calendar.getTimeInMillis(): " + calendar.getTimeInMillis());
        System.out.println("date.getTime():"+date.getTime());

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值