javascript - 在多个平台上处理不同的日期格式
问题描述
我有一个严重依赖于timestamps
(跟踪用户何时启动计时器、何时暂停、何时从暂停返回、何时开始任务、何时暂停任务、何时恢复任务、何时完成一项任务,当他们停止计时器时)。
在某些地方,我必须进行计算。例如,活动任务时间是任务完成时间-任务开始时间-该任务每次暂停的结束和开始的差值之和。
当我开发这个应用程序时,我使用了我能找到的最标准的日期格式:
YYYY:MM:DD HH:MM:SS - 2021:03:08 14:31:50
在所有 android 手机、linux 和 windows PC 上,我已经测试过这个应用程序没有问题,但是在 Apple 设备(Mac 和 iPhone)上,它无法将此日期时间字符串转换为 JS 日期时间对象,因此涉及的所有计算日期时间,我得到 NaN(日期转换不正确时非常常见的错误)。
幸运的是,我正在使用基于 的自定义 MySQL 工具sqlalchemy
,并且在早期开发阶段我编写了一个函数来定义数据库返回的日期格式,因此我将其更改为以下内容:
DD/MM/YYYY HH:MM:SS - 03/08/2021 14:35:19
这解决了主要问题 - 在 Apple 设备上执行日期时间计算,但是现在我遇到了更大的问题 - 写入数据库。数据库无法识别上述格式,导致以下错误:
(pymysql.err.OperationalError) (1292, "Incorrect datetime value: '08/03/2021 14:08:45' for column `WM_4`.`_carts`.`_order_date` at row 1")
[SQL: UPDATE _carts SET _order_date = %s, _status_id = %s, _to_site = %s, _user_id = %s WHERE _id = %s;]
[parameters: ('08/03/2021 14:08:45', 4, 7, 9, 1)]
我可以通过创建另一个将日期转换回以前接受的格式的函数来解决这个问题,但这看起来就像在圈子里跑来跑去,在我看来不是一个可接受的解决方案。
当然有更好的方法来解决这个问题。我确信其他人在使用 Apple 设备时遇到过日期时间格式问题,所以我想知道他们是如何解决的。
解决方案
推荐阅读
- hadoop - 在 CentOS 7 中安装 Cloudera 管理器时没有可用的软件包 oracle-j2sdk1.7
- excel - 结构更新
- cassandra - 查询时如何将 cassandra 列值转换为相应的枚举
- python - executemany - 错误消息 错误绑定参数 0 - 可能不受支持的类型
- java - 在 IntelliJ IDEA 中取消注释 javadoc 的快捷方式
- ruby-on-rails - 如何使用 rails gem 在 shopify API 产品上添加分页
- java - 任何人都应该在实时开发环境中使用单元测试库方法和类吗?
- android - 无法使用多个光标从 SQLite 检索数据
- image-processing - 什么是图像的自然度
- typescript - TypeScript (v3.1.3):给通用类型接口起别名?