日期相关类型

    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实例时应指定所转换的字符串格式(模式串),否则系统会缺省采用与所在语言环境

       相关的默认格式

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();
		}

	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值