Java学习之日期格式化显示(SimpleDateFormat&Date)

初学Java,感觉什么都很新奇,比如看到下面一段代码:

import java.text.SimpleDateFormat;
import java.util.Date;
/*
 *日期格式化显示 
 */
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date d = new Date();
		SimpleDateFormat f = new SimpleDateFormat("今天是yyyy年MM月dd日kk点mm分ss秒");
		System.out.println(f.format(d));
	}
}

输出很神奇啊:

今天是2016年09月11日23点18分27秒

也就是说,上面的代码直接就准确输出了现在的时间!

简单看看SimpleDateFormat是怎么玩的:

package com.date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {

	public static void main(String[] args) throws ParseException{
		//使用format()方法将日期转换为指定格式的文本
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd  HH:mm");
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
		Date now = new Date();//创建Date对象,表示当前时间
		System.out.println(sdf1.format(now));//调用format()方法,将日期转换为字符串并输出
		System.out.println(sdf2.format(now));
		System.out.println(sdf3.format(now));
		
		//使用parse()方法将文本转换为日期
		String d = "2016-12-17 13:14:20";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = sdf.parse(d);
		System.out.println(date);
	}
}

再看看Calendar:

package com.calendar;
import java.util.*;
import java.text.*;
public class Main {

	public static void main(String[] args) {
		//创建Calendar对象
		Calendar c = Calendar.getInstance();
		//将Calendar对象转换为Date对象
		Date date = c.getTime();
		//创建SimpleDateFormat对象,指定目标格式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//将日期转换为指定格式的字符串
		String now = sdf.format(date);
		System.out.println("当前时间:"+now);
	}
}


还记得当初用C++输出当地时间的时候简直麻烦,如今JAVA实现却是如此简洁!

它是如何做到的呢?

首先,SimpleDateFormat是一个类,它的作用是对日期字符进行解析和格式化输出。

而代码中的yyyy、MM、dd、kk、mm、ss都被它解析了,它的解析所遵循的规则是这样的:

/*
   G 年代标志符 
   y 年 
   M 月 
   d 日 
   h 时 在上午或下午 (1~12) 
   H 时 在一天中 (0~23) 
   m 分 
   s 秒 
   S 毫秒 
   E 星期 
   D 一年中的第几天 
   F 一月中第几个星期几 
   w 一年中第几个星期 
   W 一月中第几个星期 
   a 上午 / 下午 标记符 
   k 时 在一天中 (1~24) 
   K 时 在上午或下午 (0~11) 
   z 时区 
*/

然后它会自动将上表里面的字母转换成后面所对应的时间


至于Date的各种用法:

http://www.233.com/Java/zhuanye/20100913/114439134.html

你可能感兴趣的:(java,java)