一尘不染

将Unix / Linux时间转换为Windows时间的方法

linux

我想要在两种系统上的两者之间进行转换的多种方法。我正在寻找一种快速简便的方法来做到这一点。

我想要Python方式,excel,openoffice
calc方式,访问方式,命令行方式。您做的任何其他方式也将很好。换种方式(从Windows到Linux)也很好

我从某些脚本中获得的输出包括自1970年以来的时间(以秒为单位),但我想转换为Windows时间。这样,当将其导入数据库时​​,不会浪费时间。

在Linux中,您可以使用gettimeofday从1970年1月1日开始获得以毫秒为单位的时间(10 ^ -6秒)。

在Windows中包含一个64位的值,该值表示自1601年1月1日(UTC)起100纳秒间隔的数量。

这是C方式。将Unix / Linux时间转换为WindowsFILETIME

找到的示例

find ./sd-mmc-card/ -iname *.jpg -printf "%h/%f\t%f\t%a\t%Ax\t%AT\t%A@\n" > dbtime.txt

./sd-mmc-card/0117.jpg    0117.jpg    Thu Mar 24 15:27:25.0059226867 2011    24/03/2011    15:27:25.0592268670    1300973245.0592268670

阅读 432

收藏
2020-06-03

共1个答案

一尘不染

将time_t值转换为文件时间对此进行了描述,该文件提供了示例C代码。

摘要:

filetime = (unixtime * 10000000) + 116444736000000000

0x3DE43B0C → 0x01C295C4:91150E00 (2002-11-27 03:25:00 +0000)

(还很有帮助的是如何从很远的距离识别不同类型的时间戳。)


通常%AF %AT,使用strptime()或类似的语法来解析人类可读的时间戳更为容易,例如“ 2002-11-27
03:25:00”(printf )。

2020-06-03