shell和python转换日期和天数

2024-10-14 14:48:13

在写脚本的时候,经常需要处理日期。而处理工具主要用到两个,一个是shell,一个是python。下面我们来看看在shell和python中,怎么将日期和天数进行转换。

工具/原料

shell

python3

一、shell方式

1、首先我们来看一下shell中的日期转换,主要有两种转换方式,第一种是给出一个日期,转换为需要的格式。我们来看。在shell中转换日期使用的命令是date,date命令的基本格式是:date [选项] +[格式]选项指的是参数,常用的是-d选项格式指的是你要格式化的日期格式。比如2018-07-31这样的。是通过格式化字符来控制的。下面我们看一个示例:

shell和python转换日期和天数shell和python转换日期和天数

4、然后就可以根据对应的格式化字符串,将日期转换成一年中的天数,如下面第一张图中的示例,两种格式的字符串,可以直接转换,再看第二张图中的示例,2012年和2018年一个是闰年,一个是非闰年,结果也都是对的。

shell和python转换日期和天数

5、但是天数转日期这个就有点难了,因为知道一个天数,还要需要知道一个年份。来判断这个天数的具体日期。操作思路是,根据这一年的第一天,加上天数,再减去一,就是对应的日期了。日期加减的格式是:date -d '20180503 +1 day' +'%Y-%m-%d'在字符串后面有一个+1 day表示加1天,根据这样的格式就很容易写出根据天数推断日期的示例了。比如上面示例中的20120508对应的天数是129天,那么对应的日期反推就是:date -d '20120101 +128 day' +'%Y-%m-%d'结果如下图中所示,第二个示例中,2018年加上同样的天数就是5月9号,是因为2012年是闰年,比2018年多一天。因此即使是闰年也不会出错。

shell和python转换日期和天数

2、然后就可以从类对象中直接输出它是一年中的多少天了,如下面图中所示,使用的是类对象的一个属性tm_yday.

shell和python转换日期和天数
猜你喜欢