编程语言
首页 > 编程语言> > Java 日期类 Date

Java 日期类 Date

作者:互联网

目录

构造函数:

常用方法:

使用DateFormat格式化日期

使用SimpleDateFormat格式化日期

 日期与日期格式字符串的相互转化:

Calendar类

Calendar与Date都是表示日期的工具类,他们之间可以相互转换。

Calendar类提供的常用方法:


构造函数:

Date(int year,int month ,int day)已经过时

常用Date(long date):从标准时间起指定时间的毫秒数

标准时间:1970-1-1-8:00

常用方法:

Date日期和毫秒的相互转换:

1.日期获取毫秒值

Date date3 = new Date();

long time = date3.getTime();

2.把一个毫秒值转换为Date

  1. 构造方法
  2. setTime(long time)方法

使用DateFormat格式化日期

DateFormat是一个抽象类,它也提供了几个工厂方法用于获取DateFormat对象。返回的都是DateFormat对象的子类实例,是同一个类型的实例。

举例:

public static void main(String[] args)  throws Exception{

DateFormat format = DateFormat.getInstance();

System.out.println(format.getClass());

format = DateFormat.getDateInstance();

System.out.println(format.getClass());

format = DateFormat.getTimeInstance();

System.out.println(format.getClass());

}

输出:

 

虽然返回的都是同一个对象类型的实例,但是根据不同的工厂方法,返回的对象在格式化时间对象时,处理不同部分的信息。

使用SimpleDateFormat格式化日期

SimpleDateFormat是DateFormat的子类,是一种更简单的日期格式,以我们指定的格式对日期进行格式化。

举例:

 public static void main(String[] args) throws Exception{
            Date date = new Date();
            SimpleDateFormat simple = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            System.out.println(simple.format(date));
        simple = new SimpleDateFormat("yyyy/MM/dd");
        System.out.println(simple.format(date));
    }

输出:

 日期与日期格式字符串的相互转化:

 字符串转换成日期:parse()

日期转字符串:format()

public static void main(String[] args)  throws Exception{
		// Date -- String
		// 创建日期对象
		Date d = new Date();
		// 给定模式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		String s = sdf.format(d);
		System.out.println(s);
		
		//String -- Date
		String str = "2008-12-13 12:12:12"; 
		//在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date dd = sdf2.parse(str);
		System.out.println(dd);
	}

 

注意:yyyy 、MM、dd、HH、mm、ss 均严格区分大小写。否则会带来不可预知的问题。

具体用法如下:

字母    含义                            示例

y                

Year1996;96             哪一年
M Month in year07       一年中的哪一月
m  Minute in hour    30       一个小时中的第几分钟
wWeek in year    27       一年中的第几个星期
WWeek in month2         一个月中的第几个星期
DDay in year189     一年中的第几天
d Day in month10       一个月中的第几天
HHour in day (0-23)

0         一天中的第几个小时(24小时制)

hHour in am/pm (1-12)         

12        一天中上午、下午的第几个小时(12小时制)

SMillisecond                 

978                 毫秒数

sSecond in minute

55                  一分钟的第几秒

Calendar类

Date类的问题:

  1. 无法实现国际化。
  2. 不同属性使用了前后矛盾的偏移量,比如月份和小时都是从0开始,月份中的天数则是从1开始的,年又是从1900开始。

Calendar是一个抽象类,用于表示日历。因为Date类在设计上存在一些缺陷,所以Java提供Calendar类来更好的处理日期和时间。

Calendar类不能直接创建,可以通过类方法来创建一个Calendar的子类,Java本身提供了GregorianCalendar子类,通过getInstance()方法返回默认时区和语言环境获得一个日历。返回的实例就是Java提供的默认子类

public static void main(String[] args)  throws Exception{
		Calendar cal = Calendar.getInstance();
		System.out.println(cal.getClass());  //class java.util.GregorianCalendar
	}

Calendar与Date都是表示日期的工具类,他们之间可以相互转换。

举例:

public static void main(String[] args)  throws Exception{

Calendar cal = Calendar.getInstance();

Date date = cal.getTime();

System.out.println(date);

Calendar cale = Calendar.getInstance();

cale.setTime(date);

}

Calendar类提供的常用方法:

标签:Java,int,System,println,日期,cal,Date,Calendar,out
来源: https://blog.csdn.net/Carol__a/article/details/123100960