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

Java 使用SimpleDateFormat格式化日期

2018-01-24 14:13 781 查看
Java 使用SimpleDateFormat格式化日期,这里只涉及最实用的方面。

用途

用于格式化日期和解析日期类型字符串。

formatting (date -> text), parsing (text -> date)

构造函数




SimpleDateFormat(String pattern)


Constructs a 
SimpleDateFormat
 using the given pattern and the default date format symbols for the default locale.

日期和时间模式(pattern)

LetterDate or Time ComponentPresentationExamples
G
Era designatorText
AD
y
YearYear
1996
96
Y
Week yearYear
2009
09
M
Month in yearMonth
July
Jul
07
w
Week in yearNumber
27
W
Week in monthNumber
2
D
Day in yearNumber
189
d
Day in monthNumber
10
F
Day of week in monthNumber
2
E
Day name in weekText
Tuesday
Tue
u
Day number of week (1 = Monday, ..., 7 = Sunday)Number
1
a
Am/pm markerText
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 hourNumber
30
s
Second in minuteNumber
55
S
MillisecondNumber
978
z
Time zoneGeneral time zone
Pacific Standard Time
PST
GMT-08:00
Z
Time zoneRFC 822 time zone
-0800
X
Time zoneISO 8601 time zone
-08
-0800
-08:00

常用模式

Date and Time PatternResult
"yyyy.MM.dd G 'at' HH:mm:ss z"
2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"
Wed, Jul 4, '01
"h:mm a"
12:08 PM
"hh 'o''clock' a, zzzz"
12 o'clock PM, Pacific Daylight Time
"K:mm a, z"
0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"
02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"
Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"
010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u"
2001-W27-3


"YYYY-MM-dd"
2018-01-24

举例

package com.dylan.datatype;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* @author xusucheng
* @create 2018-01-24
**/
public class SimpleDateFormatTest {
public static void main(String[] args) {
//create date format
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/M/d");

//convert date to specific format string
Date date = new Date();
System.out.println(sdf1.format(date));

//convert string to date
String dateStr="2018/1/24";
try {
System.out.println(sdf2.parse(dateStr));
} catch (ParseException e) {
e.printStackTrace();
}
}
}

输出:

2018-01-24

Wed Jan 24 00:00:00 CST 2018

注意:

SimpleDateFormat是非线程安全的,建议为每一个线程单独创建格式化实例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: