日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux shell date 1,linux shell date命令的坑(date 1 month ago 的诡异现象)

發布時間:2023/12/18 linux 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux shell date 1,linux shell date命令的坑(date 1 month ago 的诡异现象) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

求本月的第一天 和 最后一天:

echo `date --date "$1" +"%Y-%m-01"`

year=`date -d "$1" +"%Y"`

month=`date -d "$1" +"%m"`

last_day=`cal $month $year | xargs | awk '{print $NF}'`

echo $year-$month-$last_day

求 上一個月的 第一天 和 最后一天:

#!/bin/sh

#獲取上一個月的 第一天

echo `date --date "1 month ago $1" +"%Y-%m-01"`

但在測試時 發現問題:

[lix@cq01-crm-lin1rd10..com temp]$ echo `date --date "1 month ago 20130302" +"%Y%m"`

201302

[lixia@cq01-crm-.com temp]$ echo `date --date "1 month ago 20130330" +"%Y%m"`

201303

[lixia1@cq01-crm-.com temp]$ echo `date --date "1 month ago 20130329" +"%Y%m"`

201303

[li@cq01-crm-lin1rd10.com temp]$ echo `date --date "1 month ago 20130229" +"%Y%m"`

201301

為何會出現這種詭異現象呢? 因為 20130330的 1 month ago 按說應該是 20130230? 但2月沒有30號,故會自動變成 20130301,再求%Y%m 得到201301.

只好換一種解法: 先獲取本月的第一天,再減一天,即得到上一個月的 最后一天。再把最后置為01,就得到上一個月的 第一天。

或者 先獲取本月的第一天,再1 month ago 也可以得到 上一個月的 第一天。

參考:

http://blog.csdn.net/yifanernei/article/details/5112232

http://www.cnblogs.com/billyxp/archive/2013/01/31/2886733.html

總結

以上是生活随笔為你收集整理的linux shell date 1,linux shell date命令的坑(date 1 month ago 的诡异现象)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。