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

Java中SimpleDateFormat方法超詳細(xì)分析

 更新時(shí)間:2023年08月30日 10:27:18   作者:學(xué)編程的小程  
這篇文章主要給大家介紹了關(guān)于Java中SimpleDateFormat方法超詳細(xì)分析的相關(guān)資料,SimpleDateFormat 是一個(gè)以國(guó)別敏感的方式格式化和分析數(shù)據(jù)的具體類,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

SimpleDateFormat方法

在Java中,SimpleDateFormat類是用于日期格式化和解析的類。它位于java.text包中。

分析

SimpleDateFormat SimpleDateFormat是一個(gè)用于區(qū)域設(shè)置敏感的方式格式化和解析日期的具體類日期和時(shí)間格式由日期和時(shí)間模式字符串指定,在日期和時(shí)間模式字符串中,從’A’到’Z’以及從‘a’到’z’引號(hào)中的字母被解釋為表示日期或時(shí)間字符串的組成部分的模式字母常用模式字母 y 年 M 月 d 日 H 時(shí) m 分 s 秒舉例 2021年10月27日11:11:11模式 yyyy年MM月dd日HH:mm:ss

常用方法

構(gòu)造方法

SimpleDateFormat():構(gòu)造一個(gè)SimpleDateFormat,使用默認(rèn)模式和日期 SimpleDateFormat(String pattern): 構(gòu)造一個(gè)SimpleDateFormat使用給定的模式和默認(rèn)的日期格式

格式化(從Date到String)

String format(Date date):將日期格式化成日期/時(shí)間字符串

舉例

Date now = new Date();
String formattedDate = sdf.format(now);
System.out.println(formattedDate);

分析

我們使用format()方法將當(dāng)前日期和時(shí)間對(duì)象格式化為一個(gè)字符串,并將其打印到控制臺(tái)上。

解析(從String到Date)

Date parse(String source):從給定字符串的開(kāi)始解析文本以生成日期

舉例

String dateStr = "2022-01-01 12:00:00";
Date parsedDate = sdf.parse(dateStr);
System.out.println(parsedDate);

分析

使用parse()方法將一個(gè)字符串解析為一個(gè)日期對(duì)象,并將其打印到控制臺(tái)上。

設(shè)置方法:

void setLenient(boolean lenient):設(shè)置解析時(shí)是否寬松的解析日期,默認(rèn)為true,即寬松解析,對(duì)于一些不合法的日期也會(huì)嘗試解析。void setDateFormatSymbols(DateFormatSymbols newFormatSymbols):設(shè)置用于格式化和解析日期的DateFormatSymbols對(duì)象,用于指定月份、星期幾等的名稱。

注意

SimpleDateFormat不是線程安全的。如果多個(gè)線程同時(shí)使用同一個(gè)SimpleDateFormat對(duì)象,可能會(huì)導(dǎo)致結(jié)果不正確。為了解決這個(gè)問(wèn)題,我們可以使用ThreadLocal來(lái)確保每個(gè)線程都有自己的SimpleDateFormat對(duì)象。

是SimpleDateFormat對(duì)于日期格式的解析是寬松的。這意味著它會(huì)嘗試解析不完整或不正確的日期字符串,并返回一個(gè)可能不準(zhǔn)確的日期對(duì)象。為了避免這種情況,我們應(yīng)該始終使用嚴(yán)格的日期格式,并在解析之前對(duì)日期字符串進(jìn)行驗(yàn)證。

代碼示例

代碼

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class crj {
    public static void main(String[] args) {
        //Date():
        Date d1 = new Date();
        System.out.println(d1);
        //Date(long date):  1000(毫秒)*60*60   一小時(shí)
        Date d2 = new Date(1000 * 60 * 60);
        System.out.println(d2);
        Date d = new Date();
//        SimpleDateFormat sdf = new SimpleDateFormat();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s = sdf.format(d);
        System.out.println(s);
        System.out.println("-------");
        //解析
        String ss="2021-10-27 11:11:11";
//        SimpleDateFormat sdf2=new SimpleDateFormat("2021年10月27日 11:11:11");
        SimpleDateFormat sdf2=new SimpleDateFormat("2021-10-27 11:11:11");
        Date dd= null;
        try {
            dd = sdf2.parse(ss);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(dd);
    }
}

結(jié)果

Wed Aug 09 07:47:56 CST 2023
Thu Jan 01 09:00:00 CST 1970
2023年08月09日 07:47:56
-------
Thu Jan 01 00:00:00 CST 1970

綜合案例

import com.itheima_05.DateChooser;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class crj {
    public static void main(String[] args) {
        JFrame jf = new JFrame();
        jf.setTitle("考勤查詢");
        jf.setSize(400, 300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
        //顯示考勤日期
        JLabel dataLable = new JLabel("考勤日期");
        dataLable.setBounds(50, 20, 100, 20);
        jf.add(dataLable);
        //開(kāi)始時(shí)間
        JLabel startDateLable = new JLabel("開(kāi)始時(shí)間");
        startDateLable.setBounds(50, 70, 100, 20);
        jf.add(startDateLable);
        DateChooser dateChooser1 = DateChooser.getInstance("yyyy/MM/dd");
        DateChooser dateChooser2 = DateChooser.getInstance("yyyy/MM/dd");
        //開(kāi)始時(shí)間輸入框
        JTextField startDateField = new JTextField();
        startDateField.setBounds(50, 100, 100, 20);
        dateChooser1.register(startDateField);
        jf.add(startDateField);
        //結(jié)束時(shí)間
        JLabel endDateLable = new JLabel("結(jié)束時(shí)間");
        endDateLable.setBounds(250, 70, 100, 20);
        jf.add(endDateLable);
        //結(jié)束時(shí)間輸入框
        JTextField endDateField = new JTextField();
        endDateField.setBounds(250, 100, 100, 20);
        dateChooser2.register(endDateField);
        jf.add(endDateField);
        //確定按鈕
        JButton confirmButton = new JButton("確定");
        confirmButton.setBounds(250, 180, 60, 20);
        jf.add(confirmButton);
        confirmButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
                //獲取開(kāi)始 結(jié)束時(shí)間
                String startDateString = startDateField.getText();
                String endDateString = endDateField.getText();
                try {
                    Date startDate = sdf.parse(startDateString);
                    Date endDate = sdf.parse(endDateString);
                    JOptionPane.showMessageDialog(jf,startDate+"\n"+endDate);
                } catch (ParseException ex) {
                    ex.printStackTrace();
                }
            }
        });
        jf.setVisible(true);
    }
}

效果

總結(jié) 

到此這篇關(guān)于Java中SimpleDateFormat方法超詳細(xì)分析的文章就介紹到這了,更多相關(guān)Java SimpleDateFormat方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot使用RestTemplate如何通過(guò)http請(qǐng)求將文件下載到本地

    SpringBoot使用RestTemplate如何通過(guò)http請(qǐng)求將文件下載到本地

    文章介紹了如何通過(guò)編寫代碼批量下載文件,解決了沒(méi)有提供批量下載接口的問(wèn)題,首先篩選出需要下載的文件ID,然后通過(guò)后端代碼發(fā)起HTTP請(qǐng)求,將下載的資源寫入本地文件中,總結(jié)了實(shí)現(xiàn)方式和注意事項(xiàng),希望能為類似任務(wù)提供參考
    2025-02-02
  • Java京東面試題之為什么HashMap線程不安全

    Java京東面試題之為什么HashMap線程不安全

    那天,小二去京東面試,面試官老王一上來(lái)就甩給了他一道面試題:為什么 HashMap 是線程不安全的?這個(gè)問(wèn)題哪能難的住小二,這篇文章詳細(xì)解答該題目
    2021-11-11
  • Mybatis判斷空字符串的問(wèn)題

    Mybatis判斷空字符串的問(wèn)題

    這篇文章主要介紹了Mybatis判斷空字符串的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • idea在plugins中搜不到插件的解決方法

    idea在plugins中搜不到插件的解決方法

    本文主要介紹了idea在plugins中搜不到插件的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java之對(duì)象銷毀和finalize方法的使用

    Java之對(duì)象銷毀和finalize方法的使用

    這篇文章主要介紹了Java之對(duì)象銷毀和finalize方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Eclipse配置Tomcat和JDK步驟圖解

    Eclipse配置Tomcat和JDK步驟圖解

    這篇文章主要內(nèi)容是Eclipse配置Tomcat和JDK步驟圖解,需要的朋友可以參考下
    2015-08-08
  • java使用udp實(shí)現(xiàn)簡(jiǎn)單多人聊天功能

    java使用udp實(shí)現(xiàn)簡(jiǎn)單多人聊天功能

    這篇文章主要為大家詳細(xì)介紹了java使用udp實(shí)現(xiàn)簡(jiǎn)單多人聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringBoot整合Mybatis實(shí)現(xiàn)高德地圖定位并將數(shù)據(jù)存入數(shù)據(jù)庫(kù)的步驟詳解

    SpringBoot整合Mybatis實(shí)現(xiàn)高德地圖定位并將數(shù)據(jù)存入數(shù)據(jù)庫(kù)的步驟詳解

    這篇文章主要介紹了SpringBoot整合Mybatis實(shí)現(xiàn)高德地圖定位并將數(shù)據(jù)存入數(shù)據(jù)庫(kù)的步驟詳解,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java基礎(chǔ)之JDBC的數(shù)據(jù)庫(kù)連接與基本操作

    Java基礎(chǔ)之JDBC的數(shù)據(jù)庫(kù)連接與基本操作

    這篇文章主要介紹了Java基礎(chǔ)之JDBC的數(shù)據(jù)庫(kù)連接與基本操作,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們也有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Spring中@ExceptionHandler注解的工作原理詳解

    Spring中@ExceptionHandler注解的工作原理詳解

    這篇文章主要介紹了Spring中@ExceptionHandler注解的工作原理詳解,Spring Web注解@ExceptionHandler可以用來(lái)指定處理某類異常的控制器方法,從而在這些異常發(fā)生時(shí),會(huì)有相應(yīng)的控制器方法來(lái)處理此類異常,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

巴中市| 宝山区| 黔江区| 台北市| 巨鹿县| 房山区| 克山县| 即墨市| 会东县| 丰原市| 扬州市| 新郑市| 大余县| 马边| 广宁县| 芦溪县| 上饶市| 新巴尔虎左旗| 广宁县| 灌南县| 临江市| 泽州县| 铅山县| 开江县| 锦州市| 胶南市| 定陶县| 大邑县| 清流县| 木兰县| 峡江县| 章丘市| 铁岭市| 乌拉特中旗| 盈江县| 芷江| 榕江县| 丹江口市| 湘西| 郧西县| 福建省|