重要参数讲解

  1. Usage: date [OPTION]... [+FORMAT]
  2. or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
  3. Mandatory arguments to long options are mandatory for short options too.
  4. -d, --date=STRING display time described by STRING, not 'now'
  5. FORMAT controls the output. Interpreted sequences are:
  6. %d day of month (e.g., 01)
  7. %F full date; like %+4Y-%m-%d
  8. %H hour (00..23)
  9. %I hour (01..12)
  10. %m month (01..12)
  11. %M minute (00..59)
  12. %N nanoseconds (000000000..999999999) 获取当前时间的纳秒,仅含有秒到纳秒部分,和秒组合就形成真正的纳秒
  13. %s seconds since the Epoch (1970-01-01 00:00 UTC) 秒级别的时间戳
  14. %S second (00..60)
  15. %T time; same as %H:%M:%S
  16. %V ISO week number, with Monday as first day of week (01..53)
  17. %Y year
  18. Examples:
  19. Convert seconds since the epoch (1970-01-01 UTC) to a date
  20. $ date --date='@2147483647'
  21. Show the time on the west coast of the US (use tzselect(1) to find TZ)
  22. $ TZ='America/Los_Angeles' date
  23. Show the local time for 9AM next Friday on the west coast of the US
  24. $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'

获取时间戳

当前的时间戳

  1. # 秒
  2. Desktop date +%s
  3. 1634886198
  4. # 毫秒
  5. Desktop date +%s%3N
  6. 1634886226634
  7. # 微秒
  8. Desktop date +%s%6N
  9. 1634886342825340
  10. # 纳秒
  11. Desktop date +%s%N
  12. 1634886360122580300

当前时间一天前的时间戳(ms)

  1. date +%s%3N --date="-1 day"

当前时间一天后的时间戳(ms)

  1. date +%s%3N --date="1 day"

当前时间一月前的时间戳(ms)

  1. date +%s%3N --date="-1 month"

当前时间一月后的时间戳(ms)

  1. date +%s%3N --date="1 month"

将指定的时间转成时间戳(ms)

  1. Desktop date +%s%3N -d '2021-03-22T16:14:16+08:00'
  2. 1616400856000

将秒级别的时间戳转成时间

  1. Desktop date "+%F %T" -d '@1634800545'
  2. 2021-10-21 15:15:45

获取日期

年月

  1. date "+%Y%m"

年月日

  1. date "+%Y/%m/%d"

年月日时分秒

  1. Desktop date "+%Y-%m-%d %H:%M:%S"
  2. 2021-10-22 15:23:29
  3. Desktop date "+%F %T"
  4. 2021-10-22 15:23:48

当前时间的昨天

  1. Desktop date "+%F %T"
  2. 2021-10-22 15:27:08
  3. Desktop date "+%F %T" -d "yesterday"
  4. 2021-10-21 15:26:51
  5. Desktop date "+%F %T" -d "last day"
  6. 2021-10-21 15:27:00

获取月份的首日

  1. date "+%Y/%m/01"

获取上个月月末

  1. # 第一步获取当月的第一天
  2. Desktop date "+%Y/%m/01"
  3. 2021/10/01
  4. # 在当月的第一天的时间上减去一天
  5. Desktop date -d "$(date "+%Y/%m/01") -d yesterday" +%F
  6. 2021-09-30

参考:
https://www.cnblogs.com/huixuexidezhu/p/9573194.html
https://www.jb51.net/article/69170.htm
https://blog.csdn.net/shixiaoguo90/article/details/80195052/
https://cloud.tencent.com/developer/ask/28424