您的位置:首页 > 编程语言 > Java开发

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

2016-09-11 23:25 621 查看
初学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