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);//静态方法
}