1.Date类
java.util.Date类用于表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示
2.Calendar类(日历)
抽象类java.util.Calendar类提供了常规的日期修改功能和国际化支持
3.Locale类
java.util.Locale类描述特定的地理、政治/文化上的地区,Locale对象主要封装了"地区"和"语言种类"
两方面的信息。通常用于在国际化/本土化程序中以地区/语言相关的方式显示日期、数字或文本信息等。
4.TimeZone类
java.util.TimeZone类描述时区信息
TimeZone被定义为抽象类,可以调用其静态方法getDefault()一获得该类的实例
5.GregorianCalendar类(罗马日历)
java.util.GregorianCalendar是Calendar的子类,该类提供了世界上大多数国家/地区使用的标准日历系统,
并添加判断闰年的功能
6.DateFormat类(系统指定的格式)
java.text.DateFormat类提供了将日期/时间信息进行格式化处理的功能,其格式化风格如下:
*********************************************************************************
风格 描述 日期样例(英文环境) 时间样例(英文环境)
短格式 较短 4/17/07 8:50 AM
中等格式 较长 Apr 17,2007 8:50:33 AM
长格式 更长 April 17,2007 8:50:33 AM GMT+08:00
完全格式 最详尽 Tuesday,April 17,2007 8:50:33 AM GMT+08:00
*********************************************************************************
7.SimpleDateFormat类(我们自己可以设置格式)
a.java.text.SimpleDateFormat类是DateFormat类的子类,它允许用户自己定义日期/时间信息的表现格式,
并提供更灵活的Date<=>String(日期到字符串转化,字符串到日期的转化)信息转换和解析的功能
b.在创建SimpleDateFormat实例时应指定所转换的字符串格式(模式串),否则系统会缺省采用与所在语言环境
java.util.Date类用于表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示
2.Calendar类(日历)
抽象类java.util.Calendar类提供了常规的日期修改功能和国际化支持
3.Locale类
java.util.Locale类描述特定的地理、政治/文化上的地区,Locale对象主要封装了"地区"和"语言种类"
两方面的信息。通常用于在国际化/本土化程序中以地区/语言相关的方式显示日期、数字或文本信息等。
4.TimeZone类
java.util.TimeZone类描述时区信息
TimeZone被定义为抽象类,可以调用其静态方法getDefault()一获得该类的实例
5.GregorianCalendar类(罗马日历)
java.util.GregorianCalendar是Calendar的子类,该类提供了世界上大多数国家/地区使用的标准日历系统,
并添加判断闰年的功能
6.DateFormat类(系统指定的格式)
java.text.DateFormat类提供了将日期/时间信息进行格式化处理的功能,其格式化风格如下:
*********************************************************************************
风格 描述 日期样例(英文环境) 时间样例(英文环境)
短格式 较短 4/17/07 8:50 AM
中等格式 较长 Apr 17,2007 8:50:33 AM
长格式 更长 April 17,2007 8:50:33 AM GMT+08:00
完全格式 最详尽 Tuesday,April 17,2007 8:50:33 AM GMT+08:00
*********************************************************************************
7.SimpleDateFormat类(我们自己可以设置格式)
a.java.text.SimpleDateFormat类是DateFormat类的子类,它允许用户自己定义日期/时间信息的表现格式,
并提供更灵活的Date<=>String(日期到字符串转化,字符串到日期的转化)信息转换和解析的功能
b.在创建SimpleDateFormat实例时应指定所转换的字符串格式(模式串),否则系统会缺省采用与所在语言环境
相关的默认格式
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
//日历------日期时间处理的一个关键Calendar
//获得日期的各个细节。指定各个日期中的细节就可以把这些细节组合成相应的日期类型
public class TestCalendar {
public static void main(String[] args) {
// Calnedar是抽象类不能实力化对象,调用其相应的方法获得对象
// Calendar 的 getInstance 方法返回一个 Calendar 对象,
// 其日历字段已由当前日期和时间初始化
Calendar c = Calendar.getInstance();
TestCalendar tc = new TestCalendar();
tc.display(c);// 显示的是当前时间
c.set(2008, 8, 8);
tc.display(c);
c.set(2008, 8, 8, 10, 23, 15);
tc.display(c);
tc.to(new Date());
}
public void display(Calendar c) {
String s = c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1)
+ "-" + c.get(Calendar.DATE) + " "
+ c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE)
+ ":" + c.get(Calendar.SECOND) + " "
+ (c.get(Calendar.AM_PM) == 0 ? "上午" : "下午");
System.out.println(s);
}
// 加的一些代码
public void to(Date da) {
Date date = da;
// GregorianCalendar是Calendar的子类
GregorianCalendar calendar = new GregorianCalendar();
// 把一个日期转换为日历的时间。使用给定的 Date 设置此 Calendar 的时间
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
// 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
// 在具有默认语言环境的默认时区内构造一个带有给定日期设置的
GregorianCalendar c = new GregorianCalendar(2009, 0, 1);
Date d = c.getTime();
System.out.println(d);
// 格式化一个日期输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
String s = sdf.format(date);
System.out.println(s);
}
}
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
//DateFormat的使用举例
public class TestDateFormat {
public static void main(String[] args) {
Date d = new Date();
Locale locale1 = new Locale("zh", "CN");
Locale locale2 = new Locale("en", "US");
test(d, locale1);
System.out.println("---------------------------");
test(d, locale2);
}
public static void test(Date d, Locale locale) {
// DateFormat是个抽象类,它的子类为SimpleDateFormat
DateFormat df1 = DateFormat.getDateTimeInstance();
DateFormat df2 = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT, locale);
DateFormat df3 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
DateFormat.MEDIUM, locale);
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG, locale);
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, locale);
System.out.println(df1.format(d));
System.out.println(df2.format(d));
System.out.println(df3.format(d));
System.out.println(df4.format(d));
System.out.println(df5.format(d));
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
//利用SimpleDateFormat能够指定我们自己的日期显示格式,
//还可以根据指定的格式把指定的字符串转换成日期
//format》》》》》》把时间转换成字符串
//parse》》》》》》把字符串转换成时间
public class TestSimpleDateFormat {
public static void main(String[] args) {
Locale locale1 = new Locale("zh", "CN");
Locale locale2 = new Locale("en", "US");
SimpleDateFormat sdf1 = new SimpleDateFormat();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
SimpleDateFormat sdf3 = new SimpleDateFormat(
"yyyy/MM/dd hh:mm:ss E a z", locale1);
SimpleDateFormat sdf4 = new SimpleDateFormat(
"yyyy/MM/dd hh:mm:ss E a z", locale2);
SimpleDateFormat sdf5 = new SimpleDateFormat(
"yyyy年MM月dd日 E a HH点mm分ss秒");
SimpleDateFormat sdf6 = new SimpleDateFormat(
"'On 'yyyy-MM-dd HH' 0''clock,We tested it.'");
Date d = new Date();
System.out.println(sdf1.format(d));
System.out.println(sdf2.format(d));
System.out.println(sdf3.format(d));
System.out.println(sdf4.format(d));
System.out.println(sdf5.format(d));
System.out.println(sdf6.format(d));
try {
// 解析字符串的文本,生成 Date。
d = sdf2.parse("2008/08/08 17:23:45");
System.out.println(d);
d = sdf5.parse("2007年04月17日 星期二 上午 10点02分54秒");
System.out.println(d);
} catch (ParseException e) {
e.printStackTrace();
}
}
}