SinmpleDateFormat
- java.text.SimpleDateFormat是一个以语言环境有关的方式来格式化和解析日期的具体类,他允许进行格式化(日期->文本)解析(文本->日期)和规范化的构造方法
- -SimpleDateFormat()
- -SimpleDateFormat(String pattern )
- -final String format(Date date) Date->String 将给定的字符串格式的日期解析为一个Date对象,(字符串的格式和sdf的格式要一致)字符串格式和simpledateformat的格式不一致,在解析时发生异常
- -Date parse(String source)throws ParseException String -> Date 将给定的 Date 格式化为日期/时间字符串
String datestr="2008:08:08 08:08:08";
String format= "yyyy:MM:dd hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
/*
* 将给定的字符串格式的日期解析为一个Date对象,(字符串的格式和sdf的格式要一致)
* parse(String datestring);
*
* java.text.ParseExcwption:Unparseable date
* 字符串格式和simpledateformat的格式不一致,在解析时发生异常
*/
Date date =sdf.parse(datestr);
System.out.println(date);package day05;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) throws ParseException {
/*
* 从控制台接收用户输入的生日格式,1999-08-08
* 计算从出生到现在活了多少
* 输出
*/
Scanner scn = new Scanner(System.in);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("请输入您的生日格式为yyyy-MM-dd");
//获取控制台输入的字符串str
String str =scn.nextLine();
//将字符串转换为Date类型
Date date = sdf.parse(str);//用户的生日
System.out.println(date);
long blong = date.getTime();//毫秒数
System.out.println(blong);
//获取当前的时间
Date date1 = new Date();
long dlong = date1.getTime();
long day =24*60*60*1000;
long c=dlong-blong;
System.out.println(c/day);
System.out.println(day*20000);
date.setTime(day*20000+blong);
System.out.println(date);
}
}字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month uly; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
calendar
java.util.Calendar封装日历信息,其主要作用在于,其方法可以对时间分量进行运算
calendar是抽象类,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统
-getInstance();Calendar->获取一个Calendar的实例
Calendar calendar =Calendar.getInstance();
System.out.println(calendar);getTime();Date -> 该方法获取一个Date实例,此方法是Calendar中, 在Date的getTime()是获取Date中维护的毫秒值
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//将Date对象格式化为String 字符串
String datestr=sdf.format(date);
System.out.println(datestr);setTime(Date date);void->使用给定的 Date 设置此 Calendar 的时间。
public static void main(String[] args) {
/*
* 将Date转换成Calendar
*/
Date date = new Date();//演示后面的时间
date.setTime((24*60*60*1000)+date.getTime());
Calendar calendar =Calendar.getInstance();
System.out.println(calendar);
//演示当前的时间
/*
* 使用给定的 Date 设置此 Calendar 的时间。
* setTime(Date date);void
*/
calendar.setTime(date);
System.out.println(calendar);
}set(int field, int value);void-> 将给定的日历字段设置为给定值。
//日期
calendar.set(Calendar.YEAR,2008);//年
calendar.set(Calendar.MONTH,0);//月
calendar.set(Calendar.DATE,10);//DATE等同于DAY_OF_MONTH
calendar.set(Calendar.DAY_OF_MONTH,10);//天
//时间
calendar.set(Calendar.HOUR_OF_DAY,20);//小时
calendar.set(Calendar.MINUTE,8);//分钟
calendar.set(Calendar.SECOND,8);get(int field);int -> 返回给定日历字段的值。
System.out.println(date);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)+1);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));add(int field, int amount) ;void -> 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public static void main(String[] args) {
/*
* Calendar 时间计算
*/
Calendar cal = Calendar.getInstance();
/*
* add(int feild,int n)
* 给当前的Calendar进行添加天数
* 负值是减天数,正值是加天数
*/
cal.add(Calendar.DATE,14);
cal.add(Calendar.MONTH, 2);
//三个月后的十天后 本周的周三是哪一号
int xq = cal.get(Calendar.DAY_OF_WEEK)-1;
// cal.add(Calendar.DATE, 3-xq);
cal.set(Calendar.DAY_OF_WEEK, 4);
System.out.println(cal.getActualMaximum(Calendar.DATE));
Date date=cal.getTime();
Demo7.print(date);//静态方法
}
















