1. 程式人生 > >《黑馬程式設計師》 日期Data類,日期格式化DateFormat,自定義格式化SimpleDateFormat的使用

《黑馬程式設計師》 日期Data類,日期格式化DateFormat,自定義格式化SimpleDateFormat的使用

------- android培訓java培訓、期待與您交流! ----------
public static void main(String[] args) {
		// getOsDateInstance();
		// testDate();
		// testDateTime();
		// testDateTime2();
		// testSimpleDateFormat();
		testSimpleDateFormat2();
	}

	private static void testSimpleDateFormat2() {
		// 把字串值的日期給轉換成日期物件
		String oldStr = "2008-10-19 10:11:30.345";
		String strFt = "yyyy-mm-dd hh:mm:ss.SSS";
		DateFormat dateFormat = new SimpleDateFormat(strFt);
		try {
			Date newDate = dateFormat.parse(oldStr);
			System.out.println(newDate);
			// Sat Jan 19 10:11:30 CST 2008
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 格式化日期:一
	 */
	private static void testSimpleDateFormat() {
		// simapledateformat通常用於將日期從一種格式轉換成另外一種日期格式
		// 如原日期為2008-10-19 10:11:30.345,轉換後日期為2008年10月19日10時11分30秒345毫秒
		String oldStr = "2008-10-19 10:11:30.345";
		// 轉換之前的格式
		String temp1 = "yyyy-mm-dd hh:mm:ss.SSS";
		// 轉換之後的格式
		String temp2 = "yyyy年mm月dd日 hh時mm分ss秒SSS毫秒";
		DateFormat smp1 = new SimpleDateFormat(temp1);
		DateFormat smp2 = new SimpleDateFormat(temp2);
		Date d = null;
		try {
			// 把字串的日期轉換成一個新的日期物件
			d = smp1.parse(oldStr);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		System.out.println(smp2.format(d));
		// 2008年11月19日 10時11分30秒345毫秒
	}

	private static void testDateTime2() {
		DateFormat df1;
		DateFormat df2;
		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD, new Locale(
				"zh", "CN"));
		System.out.println("日期的格式化:" + df1.format(new Date()));
		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,
				DateFormat.ERA_FIELD, new Locale("zh", "CN"));
		System.out.println("日期和時間的格式化:" + df2.format(new Date()));
		// 日期的格式化:2014年3月5日
		// 日期和時間的格式化:2014年3月5日 上午11時39分29秒 CST
	}

	private static void testDateTime() {
		Date date = new Date();
		DateFormat df = DateFormat.getDateTimeInstance(); // 這裡獲取到預設的日期格式化的例項
		String dateStr1 = df.format(date);
		System.out.println("預設的datetime格式化:" + dateStr1);
		DateFormat df3 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
		String dateStr3 = df3.format(date);
		System.out.println("使用FULL風格格式化datetime:" + dateStr3);
		DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
		String dateStr4 = df4.format(date);
		System.out.println("使用SHORT風格格式化datetime:" + dateStr4);
		DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
		String dateStr5 = df5.format(date);
		System.out.println("使用LONG風格格式化datetime:" + dateStr5);
		DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);
		String dateStr6 = df6.format(date);
		System.out.println("使用MEDIUM風格格式化datetime:" + dateStr6);
		// 使用時區:Locale.CHINESE 和Locale.CHINA都是一樣
		DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM, Locale.CHINESE);
		String dateStr7 = df7.format(date);
		System.out.println("使用MEDIUM風格及中國地區格式化datetime:" + dateStr7);
		/*
		 * 預設的datetime格式化:2014-3-5 11:13:18 使用FULL風格格式化datetime:2014年3月5日 星期三
		 * 上午11時13分18秒 CST 使用SHORT風格格式化datetime:14-3-5 上午11:13
		 * 使用LONG風格格式化datetime:2014年3月5日 上午11時13分18秒
		 * 使用MEDIUM風格格式化datetime:2014-3-5 11:13:18
		 * 使用MEDIUM風格及中國地區格式化datetime:2014-3-5 11:14:41
		 */
	}

	private static void testDate() {
		Date date = new Date();
		DateFormat df = DateFormat.getInstance(); // 這裡獲取到預設的日期格式化的例項
		// Get a default date/time formatter that uses the SHORT style for both
		// the date and the time.
		// 預設使用的是短樣式進行格式化日期和時間
		String dateStr1 = df.format(date);
		System.out.println("預設的格式化:" + dateStr1);
		// 預設的格式化:14-3-5 上午10:56
		// 我們使用
		DateFormat df2 = DateFormat.getDateInstance(); // 我們獲取日期格式化例項
		// Gets the date formatter with the default formatting style for the
		// default locale.
		// 這個是使用本地的預設格式化格式進行格式化這個取決於作業系統的版本和區域
		// 這個是根據locale得到的預設的格式化物件
		String dateStr2 = df2.format(date);
		System.out.println("locale預設格式化:" + dateStr2);
		// locale預設格式化:2014-3-5 這種使用的也是短的風格
		DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL);
		String dateStr3 = df3.format(date);
		System.out.println("使用FULL風格格式化:" + dateStr3);
		// 使用full風格格式化:2014年3月5日 星期三
		DateFormat df4 = DateFormat.getDateInstance(DateFormat.SHORT);
		// 使用SHORT風格格式化:14-3-5
		String dateStr4 = df4.format(date);
		System.out.println("使用SHORT風格格式化:" + dateStr4);
		DateFormat df5 = DateFormat.getDateInstance(DateFormat.LONG);
		// 使用LONG風格格式化:2014年3月5日
		String dateStr5 = df5.format(date);
		System.out.println("使用LONG風格格式化:" + dateStr5);
		DateFormat df6 = DateFormat.getDateInstance(DateFormat.MEDIUM);
		String dateStr6 = df6.format(date);
		System.out.println("使用MEDIUM風格格式化:" + dateStr6);
		// 使用MEDIUM風格格式化:2014-3-5

		DateFormat df7 = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINA);
		String dateStr7 = df7.format(date);
		System.out.println("使用MEDIUM風格及中國地區格式化:" + dateStr7);
		// 使用MEDIUM風格及中國地區格式化:2014-3-5

		// 使用getDateInstance只能對日期進行格式化,對時間並不能格式化
		// 我們下面只演示日期和時間的。單純的時間就不測試了
	}

	private static void getOsDateInstance() {
		Date date = new Date();
		System.out.println("系統當前日期:" + date);
		// 系統當前日期:Wed Mar 05 10:54:50 CST 2014
		// 不符合我們看到的日期格式也沒有精確到毫秒
	}