javascript - 使用 Python 以与 Javascript 完全相同的方式解析日期/时间字符串?
问题描述
我有一些客户端 JavaScript 代码,它读取一个字符串并尝试通过将其解析为 Date() 对象new Date(theString)
,将生成的 Date 作为 UTC 字符串显示给用户。如果它是一个不能转换为日期的字符串,当然,它会变成一个Invalid Date
,在这种情况下,它会显示“不是日期/时间”。
我还有一些服务器端 Python 代码,它们基本上做同样的事情:获取用户提交的可能日期,并将其存储为 UTC 字符串或“非日期”。
诀窍是,我需要两段代码在每个字符串上的行为始终完全相同。我当然可以制作一个小型 Python 端点,它使用现有的 Python 代码将适当的响应发送回客户端,而不是使用Date()
客户端,但由于各种原因,这是一个不受欢迎的解决方案。
那么有没有一种方法可以将 Python 中的字符串转换为日期,并且保证与 JavaScript 中的工作方式完全相同new Date(myString)
?
解决方案
那么有没有一种方法可以将 Python 中的字符串转换为日期,并保证其工作方式与 JavaScript 中的 new Date(myString) 完全相同?
不。
这是不可能的,因为:
- 除 ECMA-262 中指定的两种格式之外的字符串解析依赖于实现,并且很容易证明不同的实现以不同的方式解析相同的字符串(例如,为什么 Date.parse('COVINGTONOFFICE-2') 返回一个真实的日期?)
- 没有记录各种实现如何解析不受支持的格式,因此您只能通过观察每个可能的字符串的行为来确定规则,包括在每个实现中看起来不像日期的字符串,然后知道您试图模仿哪个实现
推荐阅读
- python-3.x - 为什么我的代码会吐出错误的文本?
- python - 如何将基于文本的程序制作成 GUI?tkinter 会是关键吗?
- python - 无法使用 pyautogui 最大化缩放应用程序
- c++ - 我的代码在查找最大双音子数组的长度时有什么问题
- postgresql - Postgres 无法识别已创建的用户
- javascript - 将键值对分解为具有相同键的单独对象
- git - Heroku 构建成功但有应用程序错误
- postgresql - postgresql,占用内存大,进程多
- node.js - 为什么我的 lambda 无法识别 node_modules 中的依赖关系?
- fp-ts - fp-ts:过滤掉某些左边的值,右边的错误