鱼C论坛

 找回密码
 立即注册
查看: 2347|回复: 8

python excel 日期问题

[复制链接]
发表于 2017-8-3 15:58:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

python 从excel读取的日期是float类型的,怎么转换成字符串或日期格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-3 16:02:49 | 显示全部楼层
str()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-3 16:04:03 | 显示全部楼层

你想多了,已经取出来是float了,你的意思相当于str(89.0),不管用的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-3 16:04:41 | 显示全部楼层
http://www.cnblogs.com/finallyliuyu/archive/2012/02/17/2356160.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-3 16:04:57 | 显示全部楼层
python中要把字符串转换成日期格式需要使用time模块中的strptime函数,例子如下:
import time
t = time.strptime('2016-05-09 21:09:30', '%Y-%m-%d %H:%M:%S')
print(t)
执行结果如下:
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=9, tm_hour=21, tm_min=9, tm_sec=30, tm_wday=0, tm_yday=130, tm_isdst=-1)
函数说明:
第一个参数是要转换成日期格式的字符串,第二个参数是字符串的格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-3 16:05:01 | 显示全部楼层
python中要把字符串转换成日期格式需要使用time模块中的strptime函数,例子如下:
import time
t = time.strptime('2016-05-09 21:09:30', '%Y-%m-%d %H:%M:%S')
print(t)
执行结果如下:
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=9, tm_hour=21, tm_min=9, tm_sec=30, tm_wday=0, tm_yday=130, tm_isdst=-1)
函数说明:
第一个参数是要转换成日期格式的字符串,第二个参数是字符串的格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-3 16:05:44 | 显示全部楼层
只为 发表于 2017-8-3 16:04
你想多了,已经取出来是float了,你的意思相当于str(89.0),不管用的

能说明白点吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-3 18:50:40 | 显示全部楼层
什么格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-4 13:42:41 | 显示全部楼层


举例:excel某个单元格   2017-6-29
fname = "BCP_spare_part_01-from Neo 2017-08-02 for trial run(1).xls"  # 文件名称
bk = xlrd.open_workbook(fname)
sheet1 = bk.sheets()[0]
for i in range(1, 2):
    row_data = sheet1.row_values(i)
    print(i, row_data)
    date_replace = row_data[9]    # 没有转化  42915.0

目前查到的资料:解决如下:
 if date_replace and isinstance(date_replace, float):
        date_replace = xlrd.xldate.xldate_as_datetime(date_replace, 1)
        date_replace = date_replace.strftime("%Y-%m-%d")  # 2017-6-29  格式正确了,但是实际值不对
        print(date_replace, type(date_replace))  # ('2021-06-30', <type 'str'>)

格式(字符串就可以)正确了,但是实际结果差了几年呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-24 04:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表