程序创建的xlxs文件创建时间和修改时间不正确的问题

举报
Amrf 发表于 2019/05/06 22:53:48 2019/05/06
【摘要】 问题的现象是:使用shutil.copytree拷贝文件夹后,后来在拷贝的目标文件夹里再次创建的文件的创建时间异常;改用shutil.copy拷贝单个文件就没有这个现象;推测是拷贝文件夹的时候把文件夹信息带过来了;https://stackoverflow.com/questions/32720237/using-shutil-copytree-without-copystat

问题的现象是:

使用shutil.copytree拷贝文件夹后,后来在拷贝的目标文件夹里再次创建的文件的创建时间异常;

改用shutil.copy拷贝单个文件就没有这个现象;

推测是拷贝文件夹的时候把文件夹信息带过来了;

https://stackoverflow.com/questions/32720237/using-shutil-copytree-without-copystat


现象挺有迷惑性的,就是程序创建的xlxs文件显示的文件创建和修改时间有时候正确有时候快8小时有时候又正常,推测是时区相关的问题,开始以为是其他文件拷贝其他电脑上的文件带来的影响,后来发现其实那些显示不正常的右键属性里的时间信息是正确的,但是用excel打开后在excel里查看到的时间信息是有误的,然后恍然大悟,一开始其实也考虑过是excel写入信息里带的时间信息有误,但是被现象误导到了别的方向去了,然后现在恍然大悟,xlxs这种富xml格式的时间信息有两块,一块是作为一个普通文件的信息,另一块信息是作为数据写到文件里的,explorer最初会显示原始的文件时间信息,后来会显示文件中写入的时间信息;

(从这个角度考虑那些显示正常的情况下其实用excel打开后时间信息也是不正确的,只是explorer显示没有刷新还显示的文件原始属性而已)

然后修改qxlsx中的这段代码

QDateTime::currentDateTime().toString(Qt::ISODate)
=》QDateTime::currentDateTime().toTimeSpec(Qt::OffsetFromUTC).toString(Qt::ISODate)

这个是使用qxlxs创建保存表格时的情况;然后使用python 的openpyxl保存时也会有同样的情况,推测也是同样的问题,openpyxl的实现的dll里应该也有这个问题;

 参考:

https://stackoverflow.com/questions/21976264/qt-isodate-formatted-date-time-including-timezone

https://stackoverflow.com/questions/18750569/qdatetime-isodate-with-timezone


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。