java时间类处理


/*@src http://eric-619.iteye.com/blog/693638
* 类简介:
* 1. java.util.Date类:
* 表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示。
* 2. java.util.Calendar类:
* 是抽象类,提供了常规的日期修改功能和国际化支持。
* 3. java.util.GregorianCalendar类:
* 是Calendar类的子类,有用的是有个判断闰年的方法。
* 4. java.util.Locale类:
* 描述特定的地理、政治、文化上的地区,Locale对象主要封装了“地区”和“语言种类”两方面
* 的信息,通常用于在国际化和本地化程序中的地区、语言相关的方式显示日期、数字或文本信息等。
* 5. java.util.TimeZone类:
* 此抽象类描述时区信息。可以调用静态方法getDefault()一获得该类的实例对象。
* 6. java.text.DateFormat类:
* 提供了将日期/时间信息进行格式化处理的功能。
* 7. java.text.SimpleDateFormat类:
* DateFormat类的子类,自定义格式化日期和时间。
*/


import java.util.*;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class TestTime {

public static void main(String [] args){
new TestTime().testDate();
new TestTime().testCalendar();
new TestTime().testLocale();
new TestTime().testTimeZone();
new TestTime().testGregorianCalendar();
new TestTime().testSimpleDateFormat();
}

// 1.java.util.Date类:表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示。
public void testDate(){
Date d1 = new Date();
Date d2 = new Date(2000);
System.out.println(d1);
System.out.println(d2);
System.out.println(d2.compareTo(d1)); //d2大输出1,d2小输出-1,等则输出0
System.out.println(d2.equals(d1));
System.out.println("----------------------");
}

// 2. java.util.Calendar类:是抽象类,提供了常规的日期修改功能和国际化支持。
public void testCalendar(){
//调用静态方法getInstance()来获得实例对象,此对象基于当前系统时间
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DATE));
System.out.println(c.get(Calendar.HOUR_OF_DAY));
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
System.out.println(c.get(Calendar.AM_PM));

c.add(Calendar.YEAR,10); // 在现在的基础上加了10年
System.out.println(c.get(Calendar.YEAR));

c.set(2009,8,28); //设置基于的时间,其他时间默认当前系统时间
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DATE));
System.out.println(c.get(Calendar.HOUR_OF_DAY));
System.out.println("--------------------------");
}

// 3. java.util.GregorianCalendar类:是Calendar类的子类,有用的是有个判断闰年的方法。
public void testGregorianCalendar(){
GregorianCalendar gc = new GregorianCalendar();
System.out.println(gc.isLeapYear(2008));
System.out.println("------------------------");
}


/* 4. java.util.Locale类:
* 描述特定的地理、政治、文化上的地区,Locale对象主要封装了“地区”和“语言种类”两方面
* 的信息,通常用于在国际化和本地化程序中的地区、语言相关的方式显示日期、数字或文本信息等
*/
public void testLocale(){
Locale defaultLocale = Locale.getDefault(); //当前机器所在的国家和地区
System.out.println(defaultLocale);
System.out.println(defaultLocale.getLanguage()); //英文宿写的语言名
System.out.println(defaultLocale.getCountry()); //英文宿写的国家名
System.out.println(defaultLocale.getDisplayName()); //语言名(国家名)
System.out.println(defaultLocale.getDisplayLanguage()); //语言名
System.out.println(defaultLocale.getDisplayCountry()); //国家名
System.out.println("--------------------------");
}


// 5. java.util.TimeZone类: 此抽象类描述时区信息。可以调用静态方法getDefault()一获得该类的实例对象。
public void testTimeZone(){
//String[] ids = TimeZone.getAvailableIDs();
TimeZone tz = TimeZone.getDefault();
System.out.println(tz);
System.out.println(tz.getDisplayName()); //isLeapYear()返回值是布尔类型
System.out.println("---------------------------");
}


// 6. java.text.DateFormat类: 提供了将日期/时间信息进行格式化处理的功能。
public void testDateFormat(){
DateFormat df1 = DateFormat.getDateTimeInstance();
String str1 = df1.format(new Date());
System.out.println(str1);
}


// 7. java.text.SimpleDateFormat类:DateFormat类的子类,自定义格式化日期和时间,是12小时制。
public void testSimpleDateFormat(){
SimpleDateFormat sdf1 = new SimpleDateFormat();
String ssf1 = sdf1.format(new Date());
System.out.println(ssf1);
SimpleDateFormat sdf2 = new SimpleDateFormat("2009/04/29");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");

String ssf2 = sdf2.format(new Date());
System.out.println(ssf2);
try{
Date d = sdf2.parse("2009/04/29");
System.out.println(d);
}catch(ParseException e){
e.printStackTrace();
}

System.out.println("----------------------------");
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值