JavaSE-日期类

Calendar类

简介

Calendar类是一个抽象类

为一个特定的瞬间和一套 calendar fields如:YEAR, MONTH, DAY_OF_MONTH, HOUR之间的转换提供了方法,等,和操纵日历字段

初始化

Calendar calendat = Calendar.getInstance();

常用字段

直接通过类名可以访问

字段可以直接访问static final,使用get和set方法获得或设置字段值

static int YEAR  #对于 get和 set指示年场数
static int MONTH  #对于 get和 set指示的月数
static int DAY_OF_MONTH  #对于 get和 set显示该月的一天,场数
static int HOUR  #对于 get和 set表示上午或下午场的小时数

常用方法

boolean after(Object when)  #是否这 Calendar代表由指定的 Object表示时间过了一段时间
boolean before(Object when)  #是否这 Calendar代表一个时间由指定的 Object表示的时间
Date getTime()  #返回表示这 Calendar时间价值的 Date对象
int get(int field)  #返回给定日历字段的值
int getWeekYear()  #返回的 Calendar代表周年
void set(int year, int month, int date)  #设置日历字段值 YEAR, MONTH,和 DAY_OF_MONTH

DateFormat类

简介

DateFormat帮助你格式化和解析任何区域的日期

初始化

DateFormat df = DateFormat.getDateInstance();

常用方法

String format(Date date)  #将日期格式化为日期/时间字符串
Date parse(String source)  #解析文本从给定字符串的生产开始日期

SimpleDateFormat类

简介

SimpleDateFormat实现了DateFormat,不是抽象类,是优秀的实现类

构造方法

SimpleDateFormat() #使用默认的 FORMAT现场默认模式和日期格式的符号构建了一个 SimpleDateFormat
SimpleDateFormat(String pattern) #使用给定的模式和默认的日期格式符号默认 FORMAT现场构建了一个 SimpleDateFormat
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) #使用给定的模式和日期格式的符号构建了一个 SimpleDateFormat
SimpleDateFormat(String pattern, Locale locale) #使用给定的模式和默认的日期格式符号为给定的区域构造 SimpleDateFormat

常用方法

void applyPattern(String pattern)  #将给定的模式字符串应用到此日期格式
Date parse(String text, ParsePosition pos) #解析文本字符串以产生 Date
StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)  #给定的 Date进入日期/时间线和附加的结果给出的 StringBuffer格式

日期和时间模式

在这里插入图片描述

实例

在这里插入图片描述

日期计算

package com.Date.util;

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

/*
 * @author Administrator
 * @version 1.0
 */

public class DateDemo {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		//获取出生日期
		System.out.println("请输入你的出生日期");
		Scanner sc = new Scanner(System.in);
		String birthday = sc.nextLine();
		//日期转换
		SimpleDateFormat sdf = new SimpleDateFormat();
		String pattern = "yyyy-MM-dd";
		//设置日期格式
		sdf.applyPattern(pattern);
		Date birthDate = null;
		try {
			birthDate = sdf.parse(birthday);
		} catch (Exception e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		Date now = new Date();
		long day = calculateDay(birthDate, now);
		System.out.println("已经过了多少"+ day + "天"); 
	}
	public static long calculateDay(Date birthDate, Date now) {
		long day = 0;
		long before = birthDate.getTime();
		long after = now.getTime();
		day = (after - before)/1000/60/60/24;
		return day;
	}
}

猜你喜欢

转载自blog.csdn.net/JavaDestiny/article/details/85473316