java的时间日期类有三个,分别是Data类,Calendar类,SimpleDataFormat类
Data类
Data类在jdk1.0中是唯一的时间日期类,但后来由于其API不易于实现国际化,部分API被废弃,被标记为@Deprecated
Data类的构造器
Data类的构造器有两个,分别是
public Date() //以当前时间实例化一个Data对象
public Date(long date) //以距离格里尼治时间1970年1月1日0是的毫秒数实例化一个Data对象
Data的方法
public String toString() //将Data实例表示的时间转化成public String toString()格式的字符串来表示时间
public long getTime()//== //返回Data实例表示的时间离格里尼治时间1970年1月1日0是的毫秒数
System.out.println(d.getMonth()) //用0~11表示Data实例表示的时间的月份数,0代表一月
public int getDate() //返回Data实例所表示时间的日期数
public int getDay() //返回Data实例所表示时间的星期数,0代表周日,以此类推
public int getHours() //获得data实例表示时间的小时数
pubpublic int getMinutes) //获得data实例表示时间的分钟数
public int getHours() //获得data实例表示时间的秒数
注:上述方法除了前两个之外,其他均已废弃
另外Data对象可以由println方法直接输出,效果与输出Data的toString方法的返回值相同
Calendar类
Data类的部分API被废弃后,开始使用Calendar类代替Data类。Calendar类是一个抽象类,不可实例化对象,但可以通过静态方法geiInstance()来获取实例。
Calendar类的方法
public static Calendar getInstance() //以本机的时间实例化一个对象
public int get(int field) //返回实例所代表的时间的field指定字段的值 如field=Calendar.YEAR则返回当前对象的年份
public abstract void add(int field,int amount) //将当前实例field指定的字段的值增加amount 如add(Calendar.Year,2)则表示实例的年份加二
public final Date getTime() //将Calendar对象转化成Data对象,并返回一个Data对象
Calendar的字段
Calendar定义了一些静态成员常量,这些常量可以作为参数传入add方法或get方法等,这使得Calendar的API使用更灵活
如
public static final int YEAR //年份字段
public static final int MONTH //月份字段
等等
通过其英文意思可以很容易地理解每个字段代表的内容,这里不再一一罗列了
SimpleDataFormat类
这个类类命中含有format一词,顾名思义,这是一个用于格式化输出时间信息的类
SimpleDataFormat的构造器:
SimpleDataFormat(String pattern) //以pattern样式实例化一个对象,样式指的是日期的格式化形式
字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G | Era 标志符 | Text | AD |
y | 年 | Year | 1996 ; 96 |
M | 年中的月份 | Month | July ; 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 |
format方法:
将作为参数传入的Data对象按照SimpleDataFormat指定的格式转化成字符串
SimpleDataFormat的使用例子:格式化输出当前时间
<span style="font-size:14px;">package fgb;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatTset {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy/MM/dd/hh:mm:ss a");
System.out.println(sdf.format(new Date()));
System.out.println(sdf1.format(new Date()));
}
}</span>
输出截图(eclipse下):