Java 使用SimpleDateFormat格式化日期

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
GEra designatorTextAD
yYearYear199696
YWeek yearYear200909
MMonth in yearMonthJulyJul07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay name in weekTextTuesdayTue
uDay number of week (1 = Monday, ..., 7 = Sunday)Number1
aAm/pm markerTextPM
HHour in day (0-23)Number0
kHour in day (1-24)Number24
KHour in am/pm (0-11)Number0
hHour in am/pm (1-12)Number12
mMinute in hourNumber30
sSecond in minuteNumber55
SMillisecondNumber978
zTime zoneGeneral time zonePacific Standard TimePSTGMT-08:00
ZTime zoneRFC 822 time zone-0800
XTime 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是非线程安全的,建议为每一个线程单独创建格式化实例。





posted @ 2018-01-24 14:13  一锤子技术员  阅读(3)  评论(0编辑  收藏  举报  来源