在我看来,我不知道在1970年之前存储日期的机制.1作为Unix时间戳.由于那个日期是Unix"时代",这并不奇怪.
但是 - 即使它不是为此而设计的 - 我仍然希望以Unix格式存储过去的日期.
我需要这个是有原因的.
所以我的问题是:如何让unix-timestamps包含"无效"但仍然有工作日期?存储负数秒会有效吗?我们甚至可以在unix时间戳中存储负数秒吗?我的意思是不是没有签名?
此外,如果我是正确的那么我只能存储日期,因为它1901. dec. 13 20:45:52可以在任何方式进一步延伸回历史?
我目前正在尝试通过将日期转换为时间戳来在数据集中生成数字特征。如果在 Mac 上运行,它可以完美运行,在 Windows 上它会抛出:
OS Error: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)
这可能是由于 Windows不支持 1970-01-01 之前的 unix 时间戳。我有 1955 年以上的日期。这是我的代码:
import time
import datetime
current_timestamp = time.time()
df.loc[:, "FEATURE_num"] = df["FEATURE"].apply(lambda d: datetime.datetime.strptime(d, '%Y-%m-%d').timestamp() if isinstance(d, str) else current_timestamp)
Run Code Online (Sandbox Code Playgroud)
我在某处看到建议使用datetime.timedelta(),但我不知道如何集成它。
我测试了以下代码:
date_string = "16:30"
date = datetime.strptime(date_string, "%H:%M")
timestamp = datetime.timestamp(date)
print(timestamp)
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
OSError: [Errno 22] 参数无效
我应该怎么做才能获取时间的时间戳?