java日期相关类

Date类

表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间。

package demo;

import java.util.Date;

/*
 * System.currentTimeMillis():返回的是当前系统时间,1970-1-1至今的毫秒数
 * 
 * 构造方法:
 * 		Date() :创建的是一个表示当前系统时间的Date对象
 * 		Date(long date) :根据"指定时间"创建Date对象
 */
public class DateDemo {
	public static void main(String[] args) {
		//Date()
		Date d = new Date();
		System.out.println(d);//Mon Mar 23 16:10:30 CST 2020
		System.out.println(d.toLocaleString());//2020-3-23 16:10:30
		
		//Date(long date) 
		Date d2 = new Date(1000 * 60 * 60 * 24);
		System.out.println(d2.toLocaleString());//1970-1-2 8:00:00

	}
}
package demo;

import java.util.Date;

/*
 * Date的常用用方法
		毫秒值 --> Date
			void setTime(long time)  

		Date --> 毫秒值
			long getTime()  
 */
public class DateDemo1 {
	public static void main(String[] args) {
		Date d = new Date();//默认当前系统时间
		System.out.println(d.toLocaleString());//2020-3-23 16:19:48
		System.out.println(d.getTime());//1584951588925		
		
		d.setTime(1584951588925L);
		System.out.println(d.toLocaleString());//2020-3-23 16:19:48
	}
}

DateFormat类 & SimpleDateFormat

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。

DateFormat&SimpleDateFormat的常用方法

要格式化一个当前语言环境下的日期也就是日期 -> 文本),要通过下面的方法来完成。DateFormat是抽象类,需要使用其子类SimpleDateFormat来创建对象。
SimpleDateFormat构造方法

DateFormat类方法

package demo;

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

public class SimpleDateFormatDemo {
	public static void main(String[] args) throws ParseException {
		//method();
		//method2();
		
		//使用指定的模式进行对象的构建,2020年03月23日 16:43:21
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		
		//格式化
		Date date = new Date();
		String s = sdf.format(date);
		System.out.println(s);//2020年03月23日 16:43:21

		//解析
		Date d = sdf.parse("2020年03月23日 16:43:21");
		System.out.println(d.toLocaleString());//2020-3-23 16:43:21
	}

	private static void method() throws ParseException {
		//使用默认模式进行对象的构建
		SimpleDateFormat sdf = new SimpleDateFormat();
		//创建日期对象
		Date date = new Date();
		
		//格式化 把日期对象转换成字符串
		String s = sdf.format(date);
		System.out.println(s);//20-3-23 下午4:38
		
		//解析 把字符串转换成日期对象
		Date d = sdf.parse("20-3-23 下午4:38");
		System.out.println(d.toLocaleString());//2020-3-23 16:38:00
		/*注意:Exception in thread "main" java.text.ParseException: Unparseable date: "20年3月23日 下午4:38"
			解析的字符串,模式必须和构建对象的模式一样*/
	}
	
	private static void method2() throws ParseException {
		//使用指定的模式进行对象的构建,2020年03月23日
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
		
		//格式化
		Date date = new Date();
		String s = sdf.format(date);
		System.out.println(s);//2020年03月23日
		
		//解析
		Date d = sdf.parse("2020年03月23日");
		System.out.println(d.toLocaleString());//2020-3-23 0:00:00
	}

}

Calendar类概述

Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
Calendar类静态方法

Calendar c = Calendar.getInstance();  //返回当前时间

Calendar类常用方法

package demo;

import java.util.Calendar;

public class CalendarDemo {
	public static void main(String[] args) {
		//static Calendar getInstance()方法
		Calendar c = Calendar.getInstance();//返回当前时间
		
		//void set(int field, int value) :把指定的字段修改成指定的值
		//c.set(Calendar.DAY_OF_MONTH, 20); //把day设为20,如2020年3月20日
		
		//void add(int field, int amount): 在指定的字段上加上指定的值
		//c.add(Calendar.DAY_OF_MONTH, -1); //day-1,如2020年3月19日
		
		//int get(int field) 返回给定日历字段的值
		//public static final int YEAR 1 
		//System.out.println(Calendar.YEAR);// 1
		
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH) + 1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		
		System.out.println(year + "年" + month + "月" + day + "日"); //2020年3月23日
	}
}

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

什么都不懂的菜鸟玩家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值