从Python读取TDMS文件时的DateTime调整



我有一个TDMS文件,其中包含一组DateTime值和相关的检测数据
我遇到的问题是:

TDMS file              >>>> Python Reads  
4/20/2021  12:00:01 AM >>>> 2021-04-20 04:00:00.597573  
4/20/2021  8:00:01 PM  >>>> 2021-04-21 00:00:00.570708 

这会扰乱到数据库的传输,因为它不准确。

这是我的代码:

dfscaled = tdmsfile.__getitem__("Data (Scaled)").as_dataframe()  
for index, row in dfscaled.iterrows():
print(row["Timestamp"])

我正在使用NPTDMS库。关于如何解决这个问题有什么想法吗?

所以我最终联系了作者,他很有帮助地发送了一个回复:

TDMS文件内部存储UTC时间。你没有说你怎么样得到";TDMS文件";专栏,但我想这是来自将时间转换为本地时区以显示的程序他们以下是如何从TDMS文件转换UTC时间的示例在文档中输入您的本地时区。

如果你将这些时间存储在数据库中,我强烈建议建议您将时间存储为UTC,而不是本地时区由于夏令时的变化,当地时间可能不明确,而UTC在世界任何地方都很容易理解,而无需知道数据产生的本地时区。

如果您仍然想从UTC更改为EST,那么应该这样做:

fmt = "%Y-%m-%d %H:%M:%S.%f"
x=pd.to_datetime(row["Timestamp"]).tz_localize('UTC').tz_convert('US/Eastern').strftime(fmt)
dtm=pd.to_datetime(x[:-3])
print(dtm)

最新更新