c# - 将 DateTime 序列化为最少字符数以供存储

标签 c# datetime

持久存储的字段中的字符数限制为 255 个。在这 255 个字符中,我想存储最大数量的日期和时间值,然后可以在应用程序中成功反序列化。将它们转换为 int 如前所述 here是我唯一的选择吗?

最佳答案

首先,将每个 DateTime 转换为尽可能少字节的整数值(可能是 5 – 8 个字节,具体取决于您要保留的内容)。
如果只需要存储分钟,3个字节可以覆盖31年,4个字节可以覆盖8166年。

将这些字节打包到字节数组中,然后将该字节数组转换为 Base64。这将每 6 个字符存储一个日期。

或者,选择一种非 Unicode 编码并将字节数组直接转换为字符串。这将每 4 个不可打印的可打印字符存储一个日期。

关于c# - 将 DateTime 序列化为最少字符数以供存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13736726/

相关文章:

datetime - SQL 从 3 周前获取最后更新的 DATETIME 字段

python - 将 Python 解析为 Golang - DateTime

mysql - 如何仅在 MySQL 中将日期时间时区格式更改/转换为日期格式

datetime - SSIS 从 ISO 格式 YYYY-MM-DDTHH :MM:SS. 000Z 转换日期时间

c# - 需要帮助将 Delphi 时间转换为 .Net 时间

c# - 工作流是否适合在基于 Web 的应用程序中创建动态工作流?

c# - 在.netStandard2.0项目中添加 "Connected service"

c# - 性能计数器类别名称? (C#)

c# - 抛出 WebException 的代码在 .NET 3.5 中有效,但在 4.0 中无效

c# - 绑定(bind)到附加行为