python - 将 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
解决方案
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)
推荐阅读
- java - 无法使用可执行文件 C:\Program Files\Java\jdk-10.0.1\bin\java.exe 确定 Java 版本
- assembly - x64: 有 INX 指令吗?
- azure - Azure 数据工厂 v2 U-SQL 脚本找不到凭据的机密信息
- xml - 如何克服无法在 XML 中的“文档”节点类型上设置值的问题?
- wpf - WPF Win10 禁用自动播放
- amazon-web-services - SNS 中的时间戳消息,因为它通过
- c++ - 声明 RAII 类型 (unique_lock) 的 C++ 推荐方式
- joomla - 在 Joomla 中使用 PHPOffice/PHPSpreadsheet
- javascript - 从外部javascript获取动态变量
- javascript - 使用角度更新多个 html 输入元素