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;
}
}