目录
一、问题
二、解决方法
在使用win32com向excel写入日期数据时候发现以下问题。
因为贪方便直接写入datetime格式,导致数据错误。
ws.Range('F3').Value=datetime(2023,4,1,0,0)
--->2023/3/31 16:00:00
很显然的发现一个问题,在将数据写入excel后时间被减去了8个小时 ,很自然的联想到时区的问题。
不同地区国家的时间差异可能各不相同,不一定都是8小时。
1.改成填写文本
ws.Range('F3').Value=datetime(2023,4,1,0,0).strftime('%Y-%m-%d')
--->2023/4/1
2.时间加8个小时
ws.Range('F3').Value=datetime(2023,4,1,0,0)+timedelta(hours=8)
---》2023/4/1
3.设置时区
from datetime import datetime,timezone, timedelta
beijing = timezone(timedelta(hours=8))
ws.Range('F3').Value=datetime(2023,4,1,0,0).replace(tzinfo=timezone.utc).astimezone(beijing)-->2023/4/1
方法3参考链接 https://www.jb51.net/article/264076.htm
暂时想到的就是这些,overover。