我们常用的日期格式是“年月日”型的,即year-month-day,比如今天是2019年9月14日,2019-09-14。

然而,有些地方,比如遥感图像下载的命名里面,为了数据表示方便,常常是doy(day of year)型的,如图在地理空间数据云下载landsat8:

'2019133'表示2019年的第133天,可正常人都不太可能一口说出来这是几月几号。

尤其是遥感图像的批量下载后,没有那么多耐心来算这玩意儿。因此,建立了俩函数来转换。

本篇运用的技术含量不高,但是实用。

def date2doy(year,month,day):
month_leapyear=[31,29,31,30,31,30,31,31,30,31,30,31]
month_notleap= [31,28,31,30,31,30,31,31,30,31,30,31]
doy=0 if month==1:
pass
elif year%4==0 and (year%100!=0 or year%400==0):
for i in range(month-1):
doy+=month_leapyear[i]
else:
for i in range(month-1):
doy+=month_notleap[i]
doy+=day
return doy def doy2date(year,doy):
month_leapyear=[31,29,31,30,31,30,31,31,30,31,30,31]
month_notleap= [31,28,31,30,31,30,31,31,30,31,30,31] if year%4==0 and (year%100!=0 or year%400==0):
for i in range(0,12):
if doy>month_leapyear[i]:
doy-=month_leapyear[i]
continue
if doy<=month_leapyear[i]:
month=i+1
day=doy
break
else:
for i in range(0,12):
if doy>month_notleap[i]:
doy-=month_notleap[i]
continue
if doy<=month_notleap[i]:
month=i+1
day=doy
break
return month,day

Python:日期表达的转换(day of year & year month day)的更多相关文章

  1. python 日期、时间戳转换

    获取当前日期: from datetime import datetime IN:datetime.now() OUT:datetime(2016,10,19,6,51,21,72341) 转化为字符 ...

  2. Shell Python 日期和时间戳的互相转换

    一.初衷: 很多时候,时间的存储都是时间戳格式,如果需要展示就要转化成标准格式日期.也许会需要date和timestamp互转. 二.方法: 1.Shell下对date和timestamp的互转,是通 ...

  3. Python 日期和时间戳的转换

    Python 日期和时间戳的转换 1. Python中处理时间的模块 Python中处理时间的模块有time.datetime和calendar. 在Python中表示时间的方式: 时间戳:10位整数 ...

  4. Python 日期和时间(转)

    Python 日期和时间 Python程序能用很多方式处理日期和时间.转换日期格式是一个常见的例行琐事.Python有一个 time 和 calendar 模组可以帮忙. 什么是Tick? 时间间隔是 ...

  5. (转)Python 日期和时间

    转自http://www.runoob.com/python/python-date-time.html Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见 ...

  6. Python 日期时间处理模块学习笔记

    来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...

  7. python 日期相关

    基本的日期与时间转换 问题 你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换. 解决方案 为了执行不同时间单位的转换和计算,请使用 datetime 模块. 比如,为了表示一个时间段,可以创建 ...

  8. Python 日期和时间_python 当前日期时间_python日期格式化

    Python 日期和时间_python 当前日期时间_python日期格式化 Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 cal ...

  9. MySQL 日期、时间转换函数

    MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...

随机推荐

  1. three.js中物体旋转实践之房门的打开与关闭

    看这篇博客,默认你已经知道了3D模型实现三维空间内旋转的实现方式(矩阵.欧拉角.四元数). ok,下面正式切入主题,房门的打开和关闭,先上图: 正如你所看到的那样,这个“房门”已经被打开了. 一.th ...

  2. 关于vtkCommand的各种事件的解释

    superclass for callback/observer methods vtkCommand is an implementation of the observer/command des ...

  3. ubuntu分区建议总结

    本文为转载别人的内容,结合了其他内容,进行分区的总结.其中主要是分区表格,对于ubuntu安装时,进行分区非常有用. 无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为 ...

  4. python 并发编程 多线程 Thread对象的其他属性或方法

    介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. threading模块提供的一些方法: ...

  5. show slave status参数详解

    root@localhost (none)>show slave status\G *************************** 1. row ******************** ...

  6. ucloud启用redis

    可以设置密码

  7. Java中的享元设计模式,涨姿势了!

    首先来看一段代码: public class ShareTest {   public static void main(String[] args) {     Integer a = 127;   ...

  8. [洛谷P4183][USACO18JAN]Cow at Large P

    题目链接 Bzoj崩了之后在洛谷偶然找到的点分好题! 在暴力的角度来说,如果我们$O(n)$枚举根节点,有没有办法在$O(n)$的时间内找到答案呢? 此时如果用树形$dp$的想法,发现是可做的,因为可 ...

  9. 如何用item pipeline(管道)清洗数据

    版权声明:本文为博主原创文章,转载请注明出处:如果博客中有错误之处抑或有可以改进的地方,欢迎在评论区留言. https://blog.csdn.net/f156207495/article/detai ...

  10. zookeeper 选举leader详解

    一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...