最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java常用 Date 時(shí)間格式化、Calender日歷、正則表達(dá)式的用法小結(jié)

 更新時(shí)間:2024年12月12日 11:43:21   作者:程序猿ZhangSir  
SimpleDateFormat?是Java中用于格式化和解析日期的類,它允許你將日期對(duì)象轉(zhuǎn)換為特定格式的字符串,或者將特定格式的字符串轉(zhuǎn)換為日期對(duì)象,這篇文章主要介紹了Java常用 Date 時(shí)間格式化、Calender日歷、正則表達(dá)式的用法,需要的朋友可以參考下

1. SimpleDateFormat 日期格式化類

SimpleDateFormat 是Java中用于格式化和解析日期的類。它允許你將日期對(duì)象轉(zhuǎn)換為特定格式的字符串,或者將特定格式的字符串轉(zhuǎn)換為日期對(duì)象。

1.1 Date 類型轉(zhuǎn) String

public final format(Date date);

方法傳入一個(gè) Date 類型的變量,返回一個(gè)字符串;

// 指定要轉(zhuǎn)化成哪種格式的字符串
// 第一種(最常用的一種):年-月-日 時(shí)-分-秒格式。 為24小時(shí)制,例如下午一點(diǎn),顯示為 13-00-00
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 第二種:             年-月-日 時(shí)-分-秒格式。 為12小時(shí)制,例如下午一點(diǎn),就會(huì)顯示 01-00-00
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// 第三種:             年-月-日 格式。
SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd");
// 獲取當(dāng)前時(shí)間。  實(shí)際開發(fā)則從數(shù)據(jù)庫查詢獲得,或由前端傳入獲取
Date date = new Date();
// 將當(dāng)前時(shí)間格式化成指定格式的字符串
String formatDate1 = simpleDateFormat1.format(date);
System.out.println("yyyy-MM-dd HH:mm:ss 格式轉(zhuǎn)化為字符串:"+ formatDate1);
String formatDate2 = simpleDateFormat2.format(date);
System.out.println("yyyy-MM-dd hh:mm:ss 格式轉(zhuǎn)化為字符串:"+ formatDate2);
String formatDate3 = simpleDateFormat3.format(date);
System.out.println("yyyy-MM-dd 格式轉(zhuǎn)化為字符串:"+ formatDate3);

運(yùn)行代碼,如下所示

1.2 String 類型轉(zhuǎn) Date

public Date parse(String source) throws ParseException;

方法傳入一個(gè)字符串,返回一個(gè) Date 類型的對(duì)象;

// 指定要轉(zhuǎn)化成哪種格式的字符串
// 第一種(最常用的一種):年-月-日 時(shí)-分-秒格式。 為24小時(shí)制,例如下午一點(diǎn),顯示為 13-00-00
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 第二種:             年-月-日 時(shí)-分-秒格式。 為12小時(shí)制,例如下午一點(diǎn),就會(huì)顯示 01-00-00
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// 第三種:             年-月-日 格式。
SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd");
String dateString1 = "2012-12-12 12:12:12";
String dateString2 = "2022-12-12 12:12:12";
String dateString3 = "2032-12-12";
try {
    Date date1 = simpleDateFormat1.parse(dateString1);
    Date date2 = simpleDateFormat2.parse(dateString2);
    Date date3 = simpleDateFormat3.parse(dateString3);
    System.out.println(date1);
    System.out.println(date2);
    System.out.println(date3);
} catch (ParseException e) {
    throw new RuntimeException(e);

運(yùn)行上述代碼,如下所示

2. Calendar 日歷類

Calendar類是Java中用于操作日期和時(shí)間的抽象類。它提供了一些方法來獲取和設(shè)置日期和時(shí)間,以及進(jìn)行日期和時(shí)間的計(jì)算。

(1) getInstance():獲取一個(gè)表示當(dāng)前日期和時(shí)間的Calendar實(shí)例;

(2) get(int field):獲取指定字段的值。字段可以是Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_MONTH等;但這里要注意,月份是從0~11,因此當(dāng)我們要轉(zhuǎn)化成具體的某一個(gè)月時(shí),需要+1;

(3) getTime():將 Calendar 對(duì)象轉(zhuǎn)換為 Date 對(duì)象;

(4) setTime(Date date):將 Date 對(duì)象設(shè)置為 Calendar 對(duì)象的日期和時(shí)間;

Calendar calendar = Calendar.getInstance();
System.out.println("calender 對(duì)象:" +calendar.getTime());
// 獲取年份
int year = calendar.get(Calendar.YEAR);
System.out.println("獲取 calender 對(duì)象的年份" +year);
// 獲取月份
int month = calendar.get(Calendar.MONTH);
System.out.println("獲取 calender 對(duì)象的月份,未+1" +month);
// 獲取日期
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("獲取 calender 對(duì)象的日期" +dayOfMonth);
// 打印當(dāng)前日期和時(shí)間,月份進(jìn)行+1
System.out.println(year + "-" + (month + 1) + "-" + dayOfMonth);
// 轉(zhuǎn)化為 date 對(duì)象
Date date = calendar.getTime();
System.out.println("轉(zhuǎn)化為 Date 類型對(duì)象:"+ date);

運(yùn)行上述代碼如下所示

3. 正則表達(dá)式

正則表達(dá)式大家都不陌生,雖然對(duì)于初學(xué)者來說寫起來不太簡單,但用起來是真的香!

通常都是將正則條件寫成一個(gè)字符串,然后在去調(diào)用 String 字符串類中已經(jīng)寫好的 "matches" 正則方法,方法會(huì)返回一個(gè)布爾類型的值。

3.1 正則表達(dá)式的組成部分

(1)字符類:用于匹配特定類型的字符。例如 [abc] 匹配字符 a,b,c;[a-z] 則表示匹配26個(gè)小寫字母,[A-Z] 則表示匹配26個(gè)大寫字母,[0-9] 表示匹配0~9的數(shù)字;

(2)量詞:用于指定匹配的字符數(shù)量。例如 a* 匹配零個(gè)或多個(gè),a+ 表示匹配一個(gè)或多個(gè),a? 表示匹配零個(gè)或一個(gè);

(3)錨點(diǎn):用于指定匹配的位置。例如 "^"表示匹配的開始,“”

(4)分組:分組用于將多個(gè)字符或模式組合在一起。例如(abc)匹配 abc,(abc|def)匹配 abc 或 def。

(5)轉(zhuǎn)義字符:轉(zhuǎn)義字符用于匹配特殊字符。例如 \d 匹配任何數(shù)字,\w 匹配任何字母,數(shù)字或下劃線。

(6)預(yù)查:預(yù)查用于指定匹配的模式必須滿足的條件,但不包括匹配結(jié)果中。例如 (?=abc)表示匹配的位置后面必須是 abc。

當(dāng)然了,上述六個(gè)是正則表達(dá)式的基本組成部分,還有很多高級(jí)的組成部分,包括反向引用,非獲取組,注釋等。

3.2 手機(jī)號(hào)正則表達(dá)式

想要校驗(yàn)一個(gè)手機(jī)號(hào)是否合法,首先要知道手機(jī)號(hào)的基本構(gòu)成。這里擴(kuò)展一個(gè)冷知識(shí)。

(1)手機(jī)號(hào)都是以 "1" 開頭,這個(gè)大家都知道;

(2)手機(jī)號(hào)碼第二位不可能是 "0","1","2";第三可以是任意數(shù)字;后面8位也是隨機(jī)數(shù)字;

(3)中國三大運(yùn)行商,移動(dòng),聯(lián)通,電信分別運(yùn)營不同的特有號(hào)碼片段,正是通過第二位和第三位數(shù)字來區(qū)分屬于哪個(gè)運(yùn)營商的。

代碼如下

// ^:表示字符串的開始。
// 1:表示手機(jī)號(hào)的第一位必須是1。
// [3456789]:表示手機(jī)號(hào)的第二位必須是3、4、5、6、7、8、9中的一個(gè)。
// \\d{9}:表示手機(jī)號(hào)的后面9位必須是數(shù)字。第一個(gè) "\" 表示轉(zhuǎn)義符
//  $:表示字符串的結(jié)束。
String regex = "^1[3456789]\\d{9}$";
// 現(xiàn)在手機(jī)號(hào)直接定義一個(gè),實(shí)際開發(fā)會(huì)由前端傳給我們
String phoneNumber = "13812345678";
if (phoneNumber.matches(regex)) {
    System.out.println("手機(jī)號(hào)格式正確");
} else {
    System.out.println("手機(jī)號(hào)格式錯(cuò)誤");
}

3.3 常用密碼校驗(yàn)正則表達(dá)式

密碼就沒啥可說的了,安全性高一些的網(wǎng)站或者APP,可能會(huì)強(qiáng)制要求至少包含一個(gè)大小寫、數(shù)字、特殊字符,且不能含有空格,長度通常為8~16位。

// 至少包含一個(gè)大寫字母:(?=.*[A-Z])
// 至少包含一個(gè)小寫字母:(?=.*[a-z])
// 至少包含一個(gè)數(shù)字:(?=.*\\d)
// 至少包含一個(gè)特殊字符:(?=.*[!@#$%^&*()_+\\-=\\[\\]{};':"\\|,.<>\\/?])
// 不允許有空格:^[^\\s]+$
// 至少8個(gè)字符且不多于16個(gè)字符:^.{8,}$
String regex = "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?=.*[!@#$%^&*()_+\\-=\\[\\]{};':\"\\|,.<>\\/?]).{8,16}$";
String password = "Abc123!@#";
if (password.matches(regex)) {
    System.out.println("密碼符合要求");
} else {
    System.out.println("密碼不符合要求");
}

到此這篇關(guān)于Java常用 Date 時(shí)間格式化、Calender日歷、正則表達(dá)式的用法的文章就介紹到這了,更多相關(guān)java date時(shí)間格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot常用注解及作用說明

    Springboot常用注解及作用說明

    這篇文章主要介紹了Springboot常用注解及作用說明,Springboot開發(fā)中注解是非常重要的不可或缺的,那么Springboot中有哪些常用的注解呢,今天我們就來看一下這些注解和其作用,需要的朋友可以參考下
    2023-08-08
  • Java時(shí)區(qū)轉(zhuǎn)換實(shí)例代碼解析

    Java時(shí)區(qū)轉(zhuǎn)換實(shí)例代碼解析

    這篇文章主要介紹了Java時(shí)區(qū)轉(zhuǎn)換實(shí)例代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • idea的easyCode的 MybatisPlus模板的配置詳解

    idea的easyCode的 MybatisPlus模板的配置詳解

    這篇文章主要介紹了idea的easyCode的 MybatisPlus模板的配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java構(gòu)造方法 super 及自定義異常throw合集詳解用法

    Java構(gòu)造方法 super 及自定義異常throw合集詳解用法

    異常是程序中的一些錯(cuò)誤,但不是所有錯(cuò)誤都是異常,且錯(cuò)誤有時(shí)候是可以避免的,super可以理解為是指向自己超(父)類對(duì)象的一個(gè)指針,而這個(gè)超類指的是離自己最近的一個(gè)父類,構(gòu)造器也叫構(gòu)造方法、構(gòu)造函數(shù),是一種特殊類型的方法,負(fù)責(zé)類中成員變量(域)的初始化
    2021-10-10
  • RabbitMQ冪等性與優(yōu)先級(jí)及惰性詳細(xì)全面講解

    RabbitMQ冪等性與優(yōu)先級(jí)及惰性詳細(xì)全面講解

    關(guān)于MQ消費(fèi)者的冪等性問題,在于MQ的重試機(jī)制,因?yàn)榫W(wǎng)絡(luò)原因或客戶端延遲消費(fèi)導(dǎo)致重復(fù)消費(fèi)。使用MQ重試機(jī)制需要注意的事項(xiàng)以及如何解決消費(fèi)者冪等性與優(yōu)先級(jí)及惰性問題以下將逐一講解
    2022-11-11
  • java正則表達(dá)式匹配規(guī)則超詳細(xì)總結(jié)

    java正則表達(dá)式匹配規(guī)則超詳細(xì)總結(jié)

    正則表達(dá)式并不僅限于某一種語言,但是在每種語言中有細(xì)微的差別,下面這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式匹配規(guī)則的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • java遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)數(shù)據(jù)完整案例

    java遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)數(shù)據(jù)完整案例

    遞歸算法的代碼比較簡潔,可讀性較好;但是在實(shí)際的業(yè)務(wù)處理中會(huì)出現(xiàn)多次的重復(fù)調(diào)用,如果處理不好,很容易出現(xiàn)StackOverflowError報(bào)錯(cuò),這篇文章主要給大家介紹了關(guān)于java遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • MyBatis環(huán)境資源配置實(shí)現(xiàn)代碼詳解

    MyBatis環(huán)境資源配置實(shí)現(xiàn)代碼詳解

    這篇文章主要介紹了MyBatis環(huán)境資源配置實(shí)現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java Map集合使用方法全面梳理

    Java Map集合使用方法全面梳理

    Map是一種依照鍵(key)存儲(chǔ)元素的容器,鍵(key)很像下標(biāo),在List中下標(biāo)是整數(shù)。在Map中鍵(key)可以使任意類型的對(duì)象。Map中不能有重復(fù)的鍵(Key),每個(gè)鍵(key)都有一個(gè)對(duì)應(yīng)的值(value)。一個(gè)鍵(key)和它對(duì)應(yīng)的值構(gòu)成map集合中的一個(gè)元素
    2022-04-04
  • Spring?Boot實(shí)現(xiàn)微信掃碼登錄功能流程分析

    Spring?Boot實(shí)現(xiàn)微信掃碼登錄功能流程分析

    這篇文章主要介紹了Spring?Boot?實(shí)現(xiàn)微信掃碼登錄功能,介紹了授權(quán)流程代碼和用戶登錄和登出的操作代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

筠连县| 磐安县| 兰考县| 沭阳县| 孝义市| 吕梁市| 隆尧县| 南乐县| 西宁市| 苏尼特右旗| 会同县| 昌吉市| 吕梁市| 清水县| 玉田县| 怀远县| 胶州市| 纳雍县| 沈丘县| 永平县| 平昌县| 白玉县| 贺州市| 剑川县| 沙雅县| 房产| 新昌县| 隆尧县| 揭西县| 寿光市| 吉林省| 中超| 绵阳市| 广宗县| 宕昌县| 红河县| 双鸭山市| 新河县| 深圳市| 义乌市| 五寨县|