Python 日期转换

 

经常会用到各种日期形式的转换,在这里做一下备忘

一、python常用的日期形式

1、时间戳:

import time
 
ticks = time.time()
print("当前时间戳为:",ticks)
 
>>>1524705721.8369513

注意:python是从1970年1月1日开始计时的,而matlab是从头开始计时的,要注意起始时间,按秒计算。

2、字符串:转换成带杠形式

GPS_second[row] = 1578532832.0                                        #时间戳
Struct_day = time.localtime(GPS_second[row])                          #由时间戳变成时间元组
str_date = time.strftime("%Y-%m-%d", Struct_day)                      #由元组变成字符串
str_date
Out[8]: '2020-01-09'

3、时间元组(struct_time)

Struct_day
Out[7]: time.struct_time(tm_year=2020, tm_mon=1, tm_mday=9, tm_hour=9, tm_min=20, tm_sec=32, tm_wday=3, tm_yday=9, tm_isdst=0)

举个例子:将ICESat的GPS时间转换为日期

base_second = (2018-1970) * 365 * 86400 + 12 * 86400             #delta_time的起始时间是2018.1.1,python的起始时间是1970.1.1,求出而者之间的秒数
GPS_second = (tem + base_second)                                #距python的起始时间1970.1.1有多少秒,也就是时间戳
for row in range(0, GPS_second.shape[0]):
        #row = 0
        Struct_day = time.localtime(GPS_second[row])                          #由时间戳变成时间元组
        str_date = time.strftime("%Y-%m-%d", Struct_day)                 #由元组变成字符串
        #cycle_column_str = cycle_column + '_str'
        good_p.loc[row, 'time_date'] = str_date

二、将不带杠的日期形式转换为天数,为了进行时间序列的分析

from dateutil.parser import parse
from matplotlib.pylab import date2num
grid_06.loc[row_time, 'M_time'] = '20200421
grid_06.loc[row_time, 'M_time_date'] = parse(grid_06.loc[row_time, 'M_time'])
grid_06.loc[row_time, 'M_time_day'] = date2num(grid_06.loc[row_time, 'M_time_date'])

1、先用parse变成时间元组

grid_06.loc[row_time, 'M_time_date'] 
Out[5]: datetime.datetime(2020, 4, 21, 0, 0)

2、再用date2num换成天数

grid_06.loc[row_time, 'M_time_day']
Out[6]: 737536.0

部分参考:https://blog.csdn.net/zhubao124/article/details/80088843

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值