目录
一、问题
二、解决方法
一、问题
在使用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文章来源:https://www.toymoban.com/news/detail-502235.html
暂时想到的就是这些,overover。文章来源地址https://www.toymoban.com/news/detail-502235.html
到了这里,关于win32com写入excel日期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!