最近在学习python将数据导入到excel,发现日期变成数字而不是日期格式的问题。

第一眼看去肯定是excel单元格格式问题,一般excel单元格格式为常规,而常规处理日期时就显示为数字,所以就想到用一个特定的数字(知道具体日期的),增加一天对应的数字就加1。

先看看python直接导入后日期的样子(下面时我随机举例的):

我们需要日期数据替换成标准的日期格式,具体的思路是:

1、先用excel实验2019-5-02对应的日期时间戳是43587。

2、再用2019-5-02减43587看是从什么时候开始计算,结论是1899-12-30。

import pandas as pd
pd.to_datetime('2019-05-02')-pd.Timedelta('43587D') #D表示天
#Timestamp('1899-12-30 00:00:00')

3、那么最后时间戳转化为日期:就只需要当前时间戳+1899-12-30

批量转化(定义转化日期戳的函数,dates为日期戳)

方法一:用pd中得Timedelta和to_datetime

import pandas as pd

def date(stamp): #这个有个弊端,输入得时间戳过大后报错,最大支持多少106751
delta = pd.Timedelta(str(stamp)+'D')
real_time = pd.to_datetime('1899-12-30') + delta
return real_time 

方法二:用datetime模块得timedelta、datetime.strptime

import datetime

def date(dates):
delta=datetime.timedelta(days=dates)
today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta
  #将1899-12-30转化为可以计算的时间格式并加上要转化的日期戳
return datetime.datetime.strftime(today,'%Y-%m-%d')#制定输出日期的格式

以下代码是将excel时间戳转化成标准日期,并替换原有列名的具体步骤:

import openpyxl
import datetime data = openpyxl.load_workbook(r'E:\work_hot\temp\docx\time_test.xlsx') def date(dates):
delta=datetime.timedelta(days=dates)
today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta
return datetime.datetime.strftime(today,'%Y/%m/%d') list1 = []
for i in data['Sheet1'].columns:
list1.append([])
for row in data['Sheet1'].values:
for x in range(len(row)):
realtime = date(row[x]) #转化为具体时间,调用date方法
list1[x].append(realtime)
continue #遍历表格中的数据,将原值改为真实日期
i = 0
for row in data['Sheet1'].columns:
for j in range(len(list1[i])):
row[j].value = list1[i][j]
i += 1 data.save(r'E:\work_hot\temp\docx\time_test1234.xlsx') #我这里另存了一份,也可以保存到原文件中

结果图:

excel时间戳转化为标准日期(日期转化为日期戳)的更多相关文章

  1. 如何将Excel日期快速转化为文本格式?

    Excel表中日期格式其实是数值,有时候需要原样转成文本,有时候也要将文本转成日期. 我发现了一个方法,估计是最快的了.不需要用那一堆year() month()之类的函数. 快速将日期格式转化为文本 ...

  2. Java中的日期格式转化

    package lianxi; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util ...

  3. 19、Python标准库: 日期和时间

    一.time时间模块 import time 1 .时间戳   时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. time_stamp = tim ...

  4. Python 标准类库-日期类型之datetime模块

    标准类库-日期类型之datetime模块    by:授客 QQ:1033553122 可用类型 3 实践出真知 4 timedelta对象 4 class datetime.timedelta(da ...

  5. Atitit.基于时间戳的农历日历历法日期计算

    Atitit.基于时间戳的农历日历历法日期计算 1. 农历xx年的大小月份根据万年历查询1 2. 农历xx年1月1日的时间戳获取1 3. 计算当年的时间戳与农历日期的对应表,时间戳为key,日期为va ...

  6. jquery 时间戳和日期时间转化

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  7. js日期格式转化

    如果出现日期格式: /Date(1442742059253)/ 可用下面js方法转化 function ChangeDateFormat(cellval) {        var date = ne ...

  8. sql的日期格式化转化

    1. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. DATE_FORMAT(date,format) 可以使用的格式有: 格式 描述 %a 缩写星期名 %b 缩写月名 %c 月 ...

  9. Java中日期的转化

    4.如何取得年月日.小时分秒? 创建java.util.Calendar实例(Calendar.getInstance()),调用其get()方法传入不同的参数即可获得参数所对应的值,如:calend ...

随机推荐

  1. servlet介绍

    1.首先说Servlet API:servlet的命名:server+applet Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http. 在 ...

  2. 白盒测试实践-任务进度-Day01

    12-05 任务安排 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务划分 任务1:依据白盒测试方法设计测试用例 说明:我们小组就不使用测试管理工具了,直接用excel文件的形式记录,具 ...

  3. ubuntu虚拟机安装简单pxe服务器

    安装环境: vmware2台虚拟机,一台用来做pxe服务器(安装tftp.dhcp.apache2等服务),另一台用来做安装测试. 虚拟机的网络配置:dhcp的虚拟网络为192.168.10.100/ ...

  4. HttpAnalyzerStdV7使用教程

    相关链接:HttpAnalyzerStdV7安装教程 1.1.使用HttpAnalyzerStdV7监控服务器返回消息 1.运行前关闭要监控的浏览器. 2.运行软件: 3.点击"Start& ...

  5. Digital image processing(数字图像处理)

    In computer science, digital image processing is the use of computer algorithms to perform image pro ...

  6. unity小记

    1.window下的Occlusion Culling是实现遮挡剔除效果,即不再摄像机里出现的物体使其不被渲染. 这样做要使物体为静态的,而且效果在设计时只在Occlusion面板下有效 2.wind ...

  7. sql语言的一大类 DML 数据的操纵语言

    -DML(insert,update,delete) 1.插入数据insert into 表名(列,列...)values(值,值...)//当插入的数据与表格一一对应时,列可以省略insert in ...

  8. 【前端布局】px与rpx的简述

    本文只以移动设备为例说明. 注意:设计师以iphone6为标准出设计稿的话,1rpx=0.5px=1物理像素.Photoshop里面量出来的尺寸为物理像素点.所以可以直接使用标注尺寸数据. [像素Pi ...

  9. redis整理の安装

    安装 步骤一: 下载 Redis 下载安装包:#wget http://redis.googlecode.com/files/redis-2.8.19.tar.gz: 步骤二:解压:#tar zxvf ...

  10. js防windos锁屏功能实现

    <li class="layui-nav-item"> <a href="javascript:;" id="lock"& ...