关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat.
先介绍SimpleDateFormat类的一些常见格式:
1.参数:
code |
describe |
Format |
example |
G |
Era designator | Text | AD |
y |
Year | Year |
1996 ; 96
|
Y |
Week year | Year |
2009 ; 09
|
M |
Month in year | Month |
July ; Jul ; 07
|
w |
Week in year | Number | 27 |
W |
Week in month | Number | 2 |
D |
Day in year | Number | 189 |
d |
Day in month | Number | 10 |
F |
Day of week in month | Number | 2 |
E |
Day name in week | Text |
Tuesday ; Tue
|
u |
Day number of week (1 = Monday, ..., 7 = Sunday) | Number | 1 |
a |
Am/pm marker | Text | PM |
H |
Hour in day (0-23) | Number | 0 |
k |
Hour in day (1-24) | Number | 24 |
K |
Hour in am/pm (0-11) | Number | 0 |
h |
Hour in am/pm (1-12) | Number | 12 |
m |
Minute in hour | Number | 30 |
s |
Second in minute | Number | 55 |
S |
Millisecond | Number | 978 |
z |
Time zone | General time zone |
Pacific Standard Time ; PST ; GMT-08:00
|
Z |
Time zone | RFC 822 time zone | -0800 |
X |
Time zone | ISO 8601 time zone |
-08 ; -0800 ; -08:00
|
2.函数:
Date parse(String):把时间样式的字符串按照SimpleDateFormat规定的格式转化为Date
案例:
/*
* 将date类型转化为某规定格式
* SimpleDateFormat 定义自己想要的格式
* 注意:若要在时间中插入普通字符,加上单引号''即可,eg:下列函数中的'T'和'Z',将会输出T字符和Z字符
*/
private static void Date2Format(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'");
Date date=new Date();
System.out.println("现在时间:\t"+date);
System.out.println("格式化:\t"+sdf.format(date)); }
运行结果:
现在时间: Wed Mar 02 14:42:15 CST 2016
格式化: 2016-03-02T14:42:328Z
String format(Date):将date转化为string类型
案例:
/*
* 将某格式的字符串时间转化为时间格式
* SimpleDateFormat定义为原时间字符串的格式,eg:sdf的格式定义
*/
private static void Format2Date(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String strDate="2016-03-02T14:27:799Z";
try {
System.out.println("转化为date类型:"+sdf.parse(strDate));
System.out.println("再转化为自定义格式:"+sdf1.format(sdf.parse(strDate)));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行结果:
转化为date类型: Wed Mar :: CST
再转化为自定义格式: --
程序代码:
package Test; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; /**
* @author
* @version 创建时间:
*
*/ /*
* SimpleDateFormat 主要是两个方法: 1.String format (Object obj) 将时间格式的object格式化为自定义格式
* 2.Date parse(String source) 将时间格式的字符串转化为时间格式
*/
public class DateFormat {
/*
* 将date类型转化为某规定格式 SimpleDateFormat 定义自己想要的格式
* 注意:若要在时间中插入普通字符,加上单引号''即可,eg:下列函数中的'T'和'Z',将会输出T字符和Z字符
*/
private static void Date2Format() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'");
Date date = new Date();
System.out.println("现在时间:\t" + date);
System.out.println("格式化:\t" + sdf.format(date)); } /*
* 将某格式的字符串时间转化为时间格式 SimpleDateFormat定义为原时间字符串的格式,eg:sdf的格式定义
*/
private static void Format2Date() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String strDate = "2016-03-02T14:27:799Z";
try {
System.out.println("转化为date类型:\t" + sdf.parse(strDate));
System.out.println("再转化为自定义格式:\t" + sdf1.format(sdf.parse(strDate)));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /*
* 测试主函数
*/
public static void main(String[] args) throws ParseException {
Date2Format();
Format2Date();
}
}