1、下载安装busybox:

复制代码

wget http://busybox.net/downloads/busybox-1.29.3.tar.bz2

tar -jxvf busybox-1.29.3.tar.bz2

cd busybox-1.29.3

make defconfig //如果对根文件系统的大小不是很苛求,可以直接使用busybox的默认配置

make

make install

构建date链接

ln -sf ./busybox ./date

复制代码

busybox date参数详解

复制代码
[busybox-1.29.3]# ./date --help
BusyBox v1.29.3 (2019-11-25 11:00:35 CST) multi-call binary.

Usage: date [OPTIONS] [+FMT] [TIME]

Display time (using +FMT), or set time

[-s,--set] TIME    Set time to TIME
-u,--utc    Work in UTC (don't convert to local time)
-R,--rfc-2822    Output RFC-2822 compliant date string
-I[SPEC]    Output ISO-8601 compliant date stringSPEC='date' (default) for date only,'hours', 'minutes', or 'seconds' for date andtime to the indicated precision
-r,--reference FILE    Display last modification time of FILE
-d,--date TIME    Display TIME, not 'now'
-D FMT        Use FMT for -d TIME conversion

Recognized TIME formats:
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]
‘date TIME’ form accepts MMDDhhmm[[YY]YY][.ss] instead
复制代码

Linux系统中的date一般可以直接进行日期的相减,

例如: centos7系统

date 获取前一天的时间: date -d -1day 或者 date -d ‘1 day ago’

date 获取前一个月的时间: date -d ‘1 month ago’

date 获取前一年的时间: date -d ‘1 year ago’

而busybox date则不可以直接获取前一天的时间,,需要时间数字相减的方法来实现获取前一天的时间

例如: busybox date 获取前一天的时间:

考虑到当前时间是年度第一天1月1日的情况,代码如下:

复制代码
year=date +%Y // 获取当前时间的年份
month=date +%m // 获取当前时间的月份
day=date +%d // 获取当前时间的日期

if [[ “day"=="01"]];then//如果当前时间是1号,则考虑一下月份问题if[["day" == "01" ]];then // 如果当前时间是1号 ,则考虑一下月份问题 if [[ "day"=="01"]];then//如果当前时间是1号,则考虑一下月份问题if[["month” == “01” ]];then // 如果当前时间是1月1号,,获取的前一天则是去年的最后一天 ,所以年份需要减一,月份和日期则是12月31日
year=expr $year - 1
yesterday=“year−12−31"elif[["{year}-12-31" elif [[ "year−12−31"elif[["month” == “03” ]];then // 如果当前时间是3月1号,获取的前一天则是2月的最后一天,2月又分28天和29天,,所以需要和4取余,
year_type=expr ${year} % 4
if [[ “yeartype"=="0"]];then//与4取余为0则为闰年,这一年的2月最后一天是29号,,取余不为0则为平年,2月的最后一天是28号day="29"elseday="28"fiyesterday="year_type" == "0" ]];then // 与4取余为0则为闰年,这一年的2月最后一天是29号,,取余不为0则为平年,2月的最后一天是28号 day="29" else day="28" fi yesterday="yeart​ype"=="0"]];then//与4取余为0则为闰年,这一年的2月最后一天是29号,,取余不为0则为平年,2月的最后一天是28号day="29"elseday="28"fiyesterday="{year}-02-day"//1,3,5,7,8,10,12月均是31天elif[["{day}" // 1,3,5,7,8,10,12月均是31天 elif [[ "day"//1,3,5,7,8,10,12月均是31天elif[["month” == “02” || “month"=="04"∣∣"month" == "04" || "month"=="04"∣∣"month” == “06” || “month"=="08"∣∣"month" == "08" || "month"=="08"∣∣"month” == “09” || “$month” == “11” ]];then
month=expr ${month} - 1
yesterday="year−{year}-year−{month}-31"
elif [[ “month"=="05"∣∣"month" == "05" ||"month"=="05"∣∣"month” == “07” || “month"=="10"∣∣"month" == "10" || "month"=="10"∣∣"month” == “12” ]];then
month=expr ${month} - 1
yesterday="year−{year}-year−{month}-30"

fi

else
yesterday=year−{year}-year−{month}-expr ${day} - 1
fi

echo $yesterday
复制代码

努力成为一名优秀的工程师

busybox date 时间的加减相关推荐

  1. Go 学习笔记(48)— Go 标准库之 time (获取时/分/秒的单位值、标准时间和Unix时间转换、字符串时间和Time类型转换、时区转换、时间的加减/休眠)

    1. 概要说明 import "time" time 包提供了时间的显示和测量用的函数.日历的计算采用的是公历. Go 提供以下几种时间类型: 时间点 Time 时间段 Durat ...

  2. Shell 脚本的时间的加减,以及时间差的计算

    Shell 脚本时候,遇到的时间处理问题.时间的加减,以及时间差的计算. 1.时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01-01 01 ...

  3. 微信小程序时间加法_微信小程序获取系统时间、时间戳、时间时间戳加减

    微信小程序获取系统时间.时间戳.时间时间戳加减,微信小程序获取明天时间 //获取当前时间戳 var timestamp = Date.parse(new Date()); timestamp = ti ...

  4. javaScript中时间的加减

    首先在javascript说起时间就离不开Date()这个对象 创建Date对象的语法: var Time=new Date();  //Date返回当日的时间和日期 然后的例getDate,getD ...

  5. SQL Server 中的时间的加减和时间的比较和时间的转换

    在开发中经常用到时间,比如查统计查询,做报表,计算出每周,上周.去年.季度--的订单,金额等业务,就需要频繁使用到时间处理. 1.时间加减之DATEDIFF DATEDIFF(datepart,sta ...

  6. Date问题:字符串格式时间进行加减

    记录一次Date时间转换,以及时间计算问题. 需求:对一个String(yyyyMMddHHmm)的时间进行计算,并返回相同类型的字符串. 准备工作: 原始数据 Time //是一个String(yy ...

  7. java时间差的百分之二十,Java对日期Date类进行加减运算、年份加减月份加减、时间差等等...

    实现代码一: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public c ...

  8. python使用datetime获取两个时间的时间差,与时间的加减运算

    设置指定日期为datatime格式:datetime(2020, 1, 1),表示2020年1月1日 设置指定的时间差:datetime.timedelta(days=2),表示两天的时间差 时间差是 ...

  9. 微信小程序获取系统时间、时间戳、时间时间戳加减

    http://blog.csdn.net/ufo00001/article/details/72834437 //获取当前时间戳var timestamp = Date.parse(new Date( ...

最新文章

  1. 【MCtalk直播】全面复盘直播答题,深度剖析产品架构的难点与坑
  2. myeclipse中,项目上有个叉报错,文件没有错误
  3. VTK:Utilities之ReportRenderWindowCapabilities
  4. Android进程间通信
  5. c语言求员工的平均分数,用C语言编程平均分数
  6. post请求html405,nginx静态文件响应post请求,405 Not Allowed
  7. 20175323 团队项目 服务器端函数功能与业务逻辑详解
  8. 2021年北京大学软件与微电子学院考研信息
  9. html输入能自动计算器,HTML自制计算器
  10. 马尔科夫蒙特卡洛算法(MCMC)
  11. b和kb的换算_kb和b换算(b kb mb换算)
  12. 迁移学习(Transfer)
  13. 2021数学建模C题详细思路,代码,论文,参考文献
  14. 梦幻西游鸿蒙石之鉴如何捡碎片,梦幻西游鸿蒙石之鉴任务攻略 鸿蒙石之鉴攻略...
  15. 博客园:CSS HTML
  16. linux svn 403 forbidden,关于svn报错 403 Forbidden
  17. php 二维数组根据参数分组
  18. 基于JavaEE的智能化网吧服务系统的设计与实现毕业设计论文
  19. 在OpenCV里实现二维离散卷积1
  20. 性格色彩测试android程序开发之五--dialog事件的处理

热门文章

  1. 一杯“咸水”的人生哲理
  2. Maven 插件开发
  3. ASP Webshell查***代码的小东东
  4. CoreAnimation-CATransaction
  5. Android 实现静默安装
  6. antd下拉框联动说明
  7. 深入学习Make命令和Makefile(上)
  8. Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed
  9. -Xlint:deprecation
  10. 文件那些事儿之一(初稿)