Java的日期类型
Date now=new Date(;//懦建一倜日期封象,默配封装系统营前时
system. out.print1n(now) ;
/ /指定年月口构建日期对象,需要注意参致规则
Date d1=new Date(2000-1900,2-1,3);//参数分别是year、month、date,注意传入年-1900,月份-1
system.out.println(d1);
//日期类型对象中并不是直接封装年月日具体值,而是存储了一个1970-1-1 0:0:0到指定曰期的毫秒值
long 11=now.getTime(;//获取毫秒值'
system.out.print1n(11);
//日期中的减法 now-dl;
long s1=now.getTime(-d1.getTime(;//两个日期之间的天数差
system.out.print1n(s1/1000/60/60/24);
//日期对象中提供了获取年月日时分秒的方法
system.out.print1n(now. getYear(+1900) ;//年份system.out.print1n(now.getMonth+1);l/月份
system.out.print1n(now. getDate();//日期
syetem. out - print1n(nnw . getDayO);//星期
system.out. print1n(now. getHours();//小时
system.out.print1n(now. getmMinutes();//分钟
system.out. print1n(now. getseconds();//秒
. Calendar: getInstance(). set(). get(). add(.gettime(). setTime(Date)
java.util.Date是java.sqIDate,Time,Timestamp的父类,Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。从JDK 1.1开始,应该使用Calendar类实现日期和时间字段之间转换,使用DateFormat类来格式化和分析日期字符串。因为Date的设计具有"千年虫"“以及”“时区”"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代
时间日期格式化
DateFormat
是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如SimpleDateFormat)允许进行格式化(日期>文本)、分析(文本->日期)和标准化。将日期表示为Date对象,或者表示为从GMT(格林尼治标准时间)1970年1月1日00:00:00这一刻开始的毫秒数。不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大;但DateFormat是SimpleDateFormat的父类。
格式化字母代表含义
G 纪元标记 AD
y 四位年份 2001
M 月份 July or 07
d 一个月的日期 10
h A.M./P.M. (1~12)格式小时 12
H 一天中的小时 (0~23) 22
m 分钟数 30
s 秒数 55
S 微妙数 234
E 星期几 Tuesday
D 一年中的日子 360
F 一个月中第几周的周几 2 (second Wed. in July)
w 一年中第几周 40
W 一个月中第几周 1
a A.M./P.M. 标记 PM
k 一天中的小时(1~24) 24
K A.M./P.M. (0~11)格式小时 10
z 时区 Eastern Standard Time
’ 文字定界符 Delimiter
" 单引号 `
使用printf格式化日期
package demo;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.sql.*;
public class timeday {
public static void main(String args[]) throws Exception {
Calendar c = Calendar.getInstance();
Date da = new Date(2000-1900, 10-1, 10);
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
SimpleDateFormat s1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss ");
SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss G纪元 一年第D天 一个月的第d天 h点 "
+"\n"+ "S微妙 E(星期几) 一年中第w周 一个月第的W周 a 一天的第k个小时 一天的第K个小时 z时区" );
String date = sd.format(c.getTime());
System.out.println(s.format(da.getTime()));
System.out.println(s1.format(da));
System.out.println(date);
}
}
SimpleDateFormat
是一个以与语言环境相关的方式来格式化和分析日期的具体类。SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的
getTimeInstance. getDateInstance或getDateTimeInstance 来新的创建日期-时间格式化程序。
·将Date格式化为String String format(Date d)
·将String解析为Date Date parse(String s)
java.util.Calendar
类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.000,格里高利历〉的偏移量。与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化.
Calendar.getlnstance(.getTime()
即可获取一个Date对象
Calendar.getInstance().add(时间的一个部分,正数代表加,负数代表减)获取当前时间的前一年时间
时间日期 方法调用
1 boolean after(Date date)
若当调用此方法的Date对象在指定日期之后返回true,否则返回false。
2 boolean before(Date date)
若当调用此方法的Date对象在指定日期之前返回true,否则返回false。
3 Object clone( )
返回此对象的副本。
4 int compareTo(Date date)
比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
5 int compareTo(Object obj)
若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。
6 boolean equals(Object date)
当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。
7 long getTime( )
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
8 int hashCode( )
返回此对象的哈希码值。
9 void setTime(long time)
用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。
10 String toString( )
转换Date对象为String表示形式,并返回该字符串。