<ruby id="fll3j"></ruby>

    <progress id="fll3j"><strike id="fll3j"></strike></progress>

      <rp id="fll3j"><listing id="fll3j"></listing></rp> <ol id="fll3j"></ol>
      <ol id="fll3j"><p id="fll3j"><thead id="fll3j"></thead></p></ol>

        <delect id="fll3j"></delect>

          <p id="fll3j"></p>
          <ol id="fll3j"><b id="fll3j"></b></ol>

            當前位置:首頁教育技巧excel技巧excel換行

            DATE #6、實戰之導入excel數據中的日期數據清洗

            減小字體 增大字體 2024-01-21 12:24:59


            我們在日常開發中,很多時候需要從系統外抓取數據到系統中,比如通過excel導入數據,對于客戶端來源的日期格式千奇百怪,要導入系統中,我們必須進行數據清洗

            外部數據源導入

            對應交互型數據,我們可以在前端處理,對于大數據量的表冊之類我們一般在后端處理,我們要判斷是否預定義的日期格式類型,處理成標準的日期時間格式,如果不是則拋棄,導入正確的數據,對于日期格式,我們分為嚴格模式和非嚴格模式,嚴格模式只要不是預定義日期格式,則狠心地拋棄,非嚴格模式,我們先預處理日期,然后再判斷非日期,則拋棄,我們按非嚴格模式處理

            通過前面幾章的分析,我們了解了對于C#來說,這個哥們是個莽漢子,耐操,對于只要不是暴恐的妹紙他都能接受,但是對于Java來說,這個哥們就是個精英人物了,一點不符合格式都不菜你,比如下面這種格式

            2020-5-20 2020-5-20 14:3:8

            按常識來說,這個是個常見的正確日期格式,MD,他就是不理睬你,就是要exception,安排,下面我們來統一解決處理他

            1.對嚴格模式下標準日期的預處理

            我們系統大概率都接受日期標準格式應該是:yyyy-MM-dd(年-月-日) yyyy-MM-dd HH:mm:ss(年-月-日 時:分:秒)

            //JavaScript code: const regex = /(d{4})(?:[u4e00-u9fa5]|[_./-])?(d{2})(?:[u4e00-u9fa5]|[_./-])?(d{2})s?((?:d{2}:?){0,3})/gm; const str = `rn - 20210305 rn - 2021-03-05 rn - 2021_03_05 rn - 2021.03.05 rn - 2021/03/05 rn - 2021年03月05 rn - 2021-03-05 12:23:23 rn`; const subst = `$1-$2-$3 $4`; // 替換的值將會被包含在結果變量中 const result = str.replace(regex, subst); console.log('Substitution result: ', result);

            通過上面的正則,我們能把常見的滿足位數的日期檢索出來轉換成標準日期格式

            嚴格模式下的日期字符串處理

            2.對單月的格式補位處理

            對用戶錄入的:yyyy-M-dd格式為yyyy-MM-dd處理

            //JavaScript code: const regex = /(d{4})(?:[_./-])?(d)(?:[_./-])?(d{2})s?((?:d{2}:?){0,3})/gm; const str = "2021-3-05"; const subst = `$1-0$2-$3 $4`; // 替換的值將會被包含在結果變量中 const result = str.replace(regex, subst); console.log('Substitution result: ', result);

            處理結果:

            單月格式化補位處理

            3.對單日的補位處理

            對用戶錄入的:yyyy-MM-d格式為yyyy-MM-dd處理

            const regex = /(d{4})(?:[_./-])?(d{2})(?:[_./-])?(d)s?((?:d{2}:?){0,3})/gm; const str = "2021-03-5"; const subst = `$1-$2-0$3 $4`; // 替換的值將會被包含在結果變量中 const result = str.replace(regex, subst); console.log('Substitution result: ', result);

            處理結果:

            單日補位格式化處理

            4.對單月單日的補位處理

            對用戶錄入的:yyyy-M-d格式為yyyy-MM-dd處理

            const regex = /(d{4})(?:[_./-])?(d)(?:[_./-])?(d)s?((?:d{2}:?){0,3})/gm; const str = "2021-3-5"; const subst = `$1-0$2-0$3 $4`; // 替換的值將會被包含在結果變量中 const result = str.replace(regex, subst); console.log('Substitution result: ', result);

            處理結果:

            單月單日補位格式化處理

            通過上面一套組合拳,我們能把大部分的日期格式字符處理成標準的yyyy-MM-dd HH:mm:ss,那么在主流的高級語言中基本都認識這家伙了,我們也可以根據這個標準寫出判斷日期的函數,當然這里僅僅是對格式的處理,對數據有效性還需要進一步處理,比如用戶錄入1000-09-09這種通過我們的邏輯也是能導入數據庫的,如果有必要對有效性進行處理,那么同理根據自己的業務邏輯在繼續蹂躪他就行了。

            評論評論內容只代表網友觀點,與本站立場無關!

               評論摘要(共 0 條,得分 0 分,平均 0 分)

            【免責聲明】本站信息來自網友投稿及網絡整理,內容僅供參考,如果有錯誤請反饋給我們及時更正,對文中內容的真實性和完整性本站不提供任何保證,不承但任何責任。
            版權所有:學竅知識網 Copyright © 2011-2024 www.5358888.cn All Rights Reserved .
            奇米网777
              <ruby id="fll3j"></ruby>

              <progress id="fll3j"><strike id="fll3j"></strike></progress>

                <rp id="fll3j"><listing id="fll3j"></listing></rp> <ol id="fll3j"></ol>
                <ol id="fll3j"><p id="fll3j"><thead id="fll3j"></thead></p></ol>

                  <delect id="fll3j"></delect>

                    <p id="fll3j"></p>
                    <ol id="fll3j"><b id="fll3j"></b></ol>