c# - 日期时间编码

标签 c# .net

有没有关于将当前日期(包括毫秒)编码为尽可能短的字符串长度的想法或实现?

例如,我想要 31/10/2011 10:41:45 尽可能最短的字符串(最好是 5 个字符)- 显然是可解码的。

如果不能缩减到 5 个字符,则年份是可选的。

编辑:它实际上不需要可解码。它只需要是一个唯一的字符串。

最佳答案

time_t 是 31 位。最多 1000 毫秒添加 10 位:即 41 位。您需要 5 个字符:前 4 个字符占 8 位,最后一个字符占 9 位。 使用中文表意文字,您应该能够轻松找到第一个 4 个字符中每个字符的 256 个连续字符的范围和最后一个字符的 512 个连续字符的范围。

不用说,您的编码日期看起来...中文!但它应该可以解决问题;-)

顺便说一句,你不必拘泥于中文。您甚至可能想为每个字符选择不同的 Unicode 256 字符范围。当然,您会希望找到 256/512 个可打印 字符的序列。

现在假设我们跳过了这一年。我们减少到每年 86400 x 366 秒 = 31622400 秒。包括毫秒:31622400000。那是 35 位。太好了:每个字符减少了 7 位。简单的! :-)

关于c# - 日期时间编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331802/

相关文章:

c# - 无法通过 WCFTestClient 测试自托管 WCF 服务

.net - 包含 using 语句的单元测试方法

c# - 使用 StreamWriter 作为参数之一对 void 方法进行单元测试

.net - 从 .NET 使用 Python COM 服务器

c# - 列出并连接到蓝牙设备

c# - 为什么编译器尝试但无法将 Devart.Data.Oracle.OracleCommand 转换为 System.IDisposable?

c# - 库中的 Task.Yield() 需要 ConfigureWait(false)

c# - IOS 工具栏上的图标颜色保持蓝色 xamarin.forms

c# - OxyPlot 绘图 Controller

c# - 如何将 XAML 绑定(bind)与以下 {Binding Model.Errors[ClassName.PropertyName]} 结合使用