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

来源:互联网 发布:智能电话软件 编辑:程序博客网 时间:2024/06/05 00:22

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

import java.text.SimpleDateFormat;import java.util.Date;/* *日期格式化显示  */public class Main {public static void main(String[] args) {// TODO Auto-generated method stubDate 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

0 0
原创粉丝点击