clockify - TimeIntervalDto 对象中的持续时间数据类型
问题描述
我正在创建一个数据库来存储在 Clockify 中创建的时间条目,我需要为持续时间字段声明一个数据类型。TimeIntervalDto 中返回一个字符串,API 文档中提供的示例是“PT1M4S”或“PT1H30M15S”。如果您知道如何解码,这显然是一个有意义的字符串。
API 文档中给出的示例是:
"timeInterval": { "duration": "PT1M4S", (例如: PT1H30M15S - 1 小时 30 分 15 秒) "end": "2018-06-12T14:01:41Z", "start": "2018-06- 12T14:00:37Z"},
我的问题是:
- 我如何将持续时间翻译成有意义的东西;和
- 假设我使用 varchar 或 nvarchar 作为数据类型,我需要满足的最大大小是多少?
解决方案
您正在使用 ISO 8601:2004(en) 持续时间 ISO 格式。
您有如下模式:“PnnYnnMnnDTnnHnnMnnS”
详细地:
- 字母 P 代表句点格式
- 每个字母代表一个不同的值,例如,如果要表示两年,请使用 02Y。
- 几个小时使用字母 T。
所以对于你的问题:
如果您可以在保存到数据库之前使用 C# 语言,您可以使用以下内容解码 de 模式:
String pattern = "PT1H30M15S";
TimeSpan ts = System.Xml.XmlConvert.ToTimeSpan(pattern); //Use System.Xml because it works with ISO 8601:2004
您可以在 ISO 网页中查找更多信息。https://www.iso.org/obp/ui/#iso:std:iso:8601:ed-3:v1:en
推荐阅读
- django - 如何绕过发送群发邮件中数据元组中的当前错误?
- git - 如何删除文件夹/命名空间中的所有远程分支?
- mongodb - 如何使用 jest 来监视 Schema.virtual 的猫鼬?
- linux - 将 celery 设置为守护程序服务的问题
- laravel - 如何使用日期范围自定义 Coreui dataTable?
- android - Appium Ruby - 无法滚动到 Accessibility_ID
- batch-file - 删除批处理文件中具有特定扩展名的文件
- amazon-web-services - 无法在具有云形成的用户数据中运行命令
- firebase - 有没有办法使用 Firebase ML 在云上运行自定义模型?
- javascript - 使用 react 和 javascript 在某些条件为真时如何显示组件?