日期Date—日期转成字符串

一、API 说明

Date 表示特定的瞬间,精确到毫秒。

在类 Date 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:

  • 年份 y 由整数 y - 1900 表示。
  • 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
  • 日期(一月中的某天)按通常方式由整数 1 至 31 表示。
  • 小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。
  • 分钟按通常方式由 0 至 59 的整数表示。
  • 秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。

在所有情形中,针对这些目的赋予方法的参数不需要在指定的范围内;例如,可以把日期指定为 1 月 32 日,并把它解释为 2 月 1 日的相同含义。

 

二、构造方法

大部分已被弃用

构造方法摘要
Date()
          分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(int year, int month, int date)
          已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date)GregorianCalendar(year + 1900, month, date) 取代。
Date(int year, int month, int date, int hrs, int min)
          已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date, hrs, min)GregorianCalendar(year + 1900, month, date, hrs, min) 取代。
Date(int year, int month, int date, int hrs, int min, int sec)
          已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date, hrs, min, sec)GregorianCalendar(year + 1900, month, date, hrs, min, sec) 取代。
Date(long date)
          分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
Date(String s)
          已过时。 从 JDK 1.1 开始,由 DateFormat.parse(String s) 取代。

 

三、常用方法

     日期对象
      3.1  日期对象和毫秒值之间的转换
          毫秒值--->日期对象
             1、通过Date对象的构造方法,  new Date(time)
             2、还可以通过setTime();
            因为还可以通过Date对象中的方法对该日期中的各个字段(年月日)等进行操
      
     日期对象-->毫秒值
             2、getTime()方法
             可以通过具体的数值进行计算

演示代码:

	private static void MethodDemo_1() {

		//获取当前系统时间毫秒值
		long time=System.currentTimeMillis();
		//System.out.println(time);//1564147968016
		
		//Date
		Date date=new Date();
		System.out.println(date);//将当前日期和时间封装成Date对象

		
		Date date2=new Date(1564147968016l);  //将指定毫秒值封装成Date对象
		System.out.println(date2);
		
	}

3.2 对日期对象进行格式化输出

      3.2.1  将日期对象--->日期格式的字符串。使用的是DateFormat类中的format方法。由于DateFormat是抽象的,所以不能直接创建实例,只能利用getDateInstance( ),获取转换器实例。

   指定输出样式风格的获取实例方法:

DateFormat.LONG 是显示的一种样式,还有FULL、Short等,具体可查看API 中DateFormat字段摘要

演示代码:

private static void MethodDemo_2() {
        Date date = new Date();

        //日期格式对象,指定输出风格
        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
        //时间格式对象,
        //2019年12月30日 下午03时45分52秒
        dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
        String str_date = dateFormat.format(date);
        //2019年12月30日
        System.out.println(str_date);

    }

3.3 对日期格式进行自定义日期格式的输出

通过DaFormat的子类SimpleDateFormat。

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstancegetDateInstancegetDateTimeInstance 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息,请参阅 DateFormat

日期和时间模式

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A''Z''a''z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A''Z''a''z' 都被保留):

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear1996; 96
M年中的月份MonthJuly; Jul; 07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday; Tue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zonePacific Standard Time; PST; GMT-08:00
Z时区RFC 822 time zone-0800

演示代码:

//自定义日期输出格式
		DateFormat dateformat =new SimpleDateFormat("yyyy--mm--dd");
		
		//调用format方法  format(Date date)  将一个 Date 格式化为日期/时间字符串。
		String string = dateformat.format(date);
		
		//2019--09--30
		System.out.println(string);

下一节:字符串转成日期对象

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真香号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值