java日期格式化SimpleDateFormat的使用詳解
日期和時(shí)間格式由 日期和時(shí)間模式字符串 指定。在 日期和時(shí)間模式字符串 中,未加引號(hào)的字母 'A' 到 'Z' 和 'a' 到 'z' 被解釋為模式字母,用來(lái)表示日期或時(shí)間字符串元素。文本可以使用單引號(hào) (') 引起來(lái),以免進(jìn)行解釋。所有其他字符均不解釋;只是在格式化時(shí)將它們簡(jiǎn)單復(fù)制到輸出字符串
白話文的講:這些A——Z,a——z這些字母(不被單引號(hào)包圍的)會(huì)被特殊處理替換為對(duì)應(yīng)的日期時(shí)間,其他的字符串還是原樣輸出。
日期和時(shí)間模式(注意大小寫,代表的含義是不同的)
yyyy:年
MM:月
dd:日
hh:1~12小時(shí)制(1-12)
HH:24小時(shí)制(0-23)
mm:分
ss:秒
S:毫秒
E:星期幾
D:一年中的第幾天
F:一月中的第幾個(gè)星期(會(huì)把這個(gè)月總共過(guò)的天數(shù)除以7)
w:一年中的第幾個(gè)星期
W:一月中的第幾星期(會(huì)根據(jù)實(shí)際情況來(lái)算)
a:上下午標(biāo)識(shí)
k:和HH差不多,表示一天24小時(shí)制(1-24)。
K:和hh差不多,表示一天12小時(shí)制(0-11)。
z:表示時(shí)區(qū)
(2017-12-28日,更新)
因?yàn)榭吹搅薐ava 8 里面對(duì)日期的格式化操作的API,回頭又看了看這個(gè)以前的日期格式化。發(fā)現(xiàn),文中的實(shí)例不是很全面。不符合濕胸的性格,特地來(lái)完善一下。
private static void formatDataTest() {
/*
* 日期轉(zhuǎn)期望格式的字符串
*/
//HH 和 hh 的差別:前者是24小時(shí)制,后者是12小時(shí)制。
StringBuilder sb = new StringBuilder();
sb.append("yyyy年MM月dd日 HH:mm:ss")
.append(" 上下午標(biāo)志 a")
.append(" E")
.append(" 一年中的第D天")
.append(" 一月中的第F個(gè)星期")
.append(" 一年中的第w個(gè)星期")
.append(" 一月中的第W個(gè)星期")
.append(" Z")
.append(" z");
SimpleDateFormat sdf = new SimpleDateFormat(sb.toString());
String dateString = sdf.format(new Date());
System.out.println(dateString);
/*
* 字符串轉(zhuǎn)日期
*/
Date date;
try {
date = sdf.parse(dateString);
System.out.println(date);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
}
運(yùn)行結(jié)果:
2017年12月28日 18:21:731 上下午標(biāo)志 下午 星期四 一年中的第362天 一月中的第4個(gè)星期 一年中的第52個(gè)星期 一月中的第5個(gè)星期 +0800 CST
Thu Dec 28 18:21:00 CST 2017
這里多說(shuō)一句,一個(gè)月中的第幾個(gè)星期, F 這個(gè)出來(lái)的結(jié)果,不靠譜,具體我就在這多做測(cè)試?yán)?,我是測(cè)試過(guò),才這么說(shuō)的,還是后面的那個(gè) W 靠譜。
(更新完成)
具體簡(jiǎn)單常見(jiàn)的實(shí)例:
package com.lxk.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by lxk on 2016/11/4
*/
public class Format {
public static void main(String[] args) {
Date ss = new Date();
System.out.println("一般日期輸出:" + ss);
System.out.println("時(shí)間戳:" + ss.getTime());
//Date aw = Calendar.getInstance().getTime();//獲得時(shí)間的另一種方式,測(cè)試效果一樣
SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format0.format(ss.getTime());//這個(gè)就是把時(shí)間戳經(jīng)過(guò)處理得到期望格式的時(shí)間
System.out.println("格式化結(jié)果0:" + time);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH時(shí)mm分ss秒");
time = format1.format(ss.getTime());
System.out.println("格式化結(jié)果1:" + time);
}
}
測(cè)試結(jié)果圖:

需要什么格式,自己拼好字符串,就可以格式化日期啦。授人以漁呀有木有。
噴子們要是覺(jué)得簡(jiǎn)單呢,就省省唾沫星子吧。我就記個(gè)筆記用。
上面的是:日期轉(zhuǎn)自己想要的字符串格式,下面是字符串轉(zhuǎn)日期類型。
private static void testStringToDate() {
String s = "2017-05-25";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(s);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
System.out.println(date);
}
下面是運(yùn)行的debug截圖。

上面的那個(gè) 日期和時(shí)間模式 是按我們常用的年月日時(shí)分秒來(lái)放的,下面?zhèn)鱾€(gè)別人的專業(yè)的圖,供參考。
定義了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

以上所述是小編給大家介紹的java SimpleDateFormat使用詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Java SimpleDateFormat中英文時(shí)間格式化轉(zhuǎn)換詳解
- Java中SimpleDateFormat的使用方法
- Java中SimpleDateFormat日期格式轉(zhuǎn)換詳解及代碼示例
- Java中SimpleDateFormat用法詳解
- Java中SimpleDateFormat方法超詳細(xì)分析
- 淺析Java中SimpleDateFormat為什么是線程不安全的
- 解決Java中SimpleDateFormat線程不安全的五種方案
- Java中的SimpleDateFormat的線程安全問(wèn)題詳解
- java中SimpleDateFormat 的多線程安全問(wèn)題
相關(guān)文章
基于kafka實(shí)現(xiàn)Spring Cloud Bus消息總線
消息總線是一種通信工具,可以在機(jī)器之間互相傳輸消息、文件等,這篇文章主要介紹了如何利用kafka實(shí)現(xiàn)SpringCloud Bus消息總線,感興趣的可以學(xué)習(xí)一下2022-04-04
Java讀取一行空格隔開(kāi)的數(shù)字字符串并求出這些數(shù)字的和方法
今天小編就為大家分享一篇Java讀取一行空格隔開(kāi)的數(shù)字字符串并求出這些數(shù)字的和方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Java中Bean轉(zhuǎn)Map問(wèn)題歸納總結(jié)
Java Bean轉(zhuǎn)Map的坑很多,最常見(jiàn)的就是類型丟失和屬性名解析錯(cuò)誤的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java中Bean轉(zhuǎn)Map問(wèn)題歸納總結(jié)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Spring JPA配置文件Eclipse報(bào)錯(cuò)如何解決
這篇文章主要介紹了Spring JPA配置文件Eclipse報(bào)錯(cuò)如何解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
java并發(fā)編程工具類JUC之LinkedBlockingQueue鏈表隊(duì)列
大家都知道LinkedBlockingQueue 隊(duì)列是BlockingQueue接口的實(shí)現(xiàn)類,所以它具有BlockingQueue接口的一切功能特點(diǎn),他還提供了兩種構(gòu)造函數(shù),本文中通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06
SpringBoot概述及在idea中創(chuàng)建方式
SpringBoot提供了一種快速使用Spring的方式,基于約定大于配置的思想,可以讓開(kāi)發(fā)人員不必在配置與邏輯業(yè)務(wù)之間進(jìn)行思維的切換,這篇文章主要介紹了SpringBoot概述及在idea中創(chuàng)建方式,需要的朋友可以參考下2022-09-09
Java注解Annotation原理及自定義注解代碼實(shí)例
這篇文章主要介紹了Java注解Annotation原理及自定義注解代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Kotlin 基礎(chǔ)教程之注解與java中的注解比較
這篇文章主要介紹了Kotlin 基礎(chǔ)教程之注解與java中的注解比較的相關(guān)資料,需要的朋友可以參考下2017-06-06
SpringBoot+RocketMQ實(shí)現(xiàn)延遲消息的示例代碼
本文主要介紹了SpringBoot+RocketMQ實(shí)現(xiàn)延遲消息案例詳解,包括基于延遲級(jí)別和基于具體時(shí)間兩種方式的完整實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-10-10

