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
yYearYear1996; 96
YWeek yearYear2009; 09
MMonth in yearMonthJuly; Jul; 07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay name in weekTextTuesday; Tue
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 Time; PST; GMT-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  一锤子技术员  阅读(30)  评论(0)    收藏  举报  来源