首页 > 解决方案 > 将 datatime 列转换为 18 位 LDAP 时间戳

问题描述

我有一个包含 AD 用户及其 accountExpires 属性的 csv 文件。accountExpires 值目前是人类可读的格式,但我想将其转换为 18 位 LDAP 格式,以便我可以导入文件以更改日期。我正在使用 pandas 在导入之前读取和修改文件。

Date time in the file - 2001-06-21  01:00:00 AM
Desired output - 126375588000000000

标签: pythonpandas

解决方案


11644473600= 1601 年 1 月到 1970 年 1 月(unix 时间)之间的秒数乘以10000000将其转换为100ns unit

import datetime
df['LDAP'] = df['datetime'].apply(lambda x: (((x-datetime.datetime(1970,1,1)).total_seconds())+11644473600)*10000000)

推荐阅读