首页 > 解决方案 > 将 DateTime 压缩为字符串的最佳方法?

问题描述

我将一个DateTime值与其他数据一起存储到一个字符串中,以便存储在数据库中。我知道这不是存储DateTime. 话虽如此,我想存储它,同时占用尽可能少的字符。

现在我以yyyyMMddHHmm格式存储它,占用 12 个字符。我不在乎秒数。是否可以在不丢失数据的情况下进一步减少存储此元素的字符数?

标签: c#datetimecompression

解决方案


您可以通过一个非常简单的方法使用六个字符:

string logTime = "202103011927";

char[] code = new char[5];
for (int i = 0; i < 5; i++)
{
    code[i] = (char)(32 + int.Parse(logTime.Substring(2 + 2 * i, 2)));
}
string display = new string(code);
Console.WriteLine(display);

char[] chars = display.ToCharArray();
StringBuilder decode = new StringBuilder("20");
for (int i = 0; i < 5; i++)
{
    decode.Append(Convert.ToInt32((Convert.ToByte(chars[i]) - 32)).ToString("00"));
}
Console.WriteLine(decode.ToString());

// 5#!3;
// 202103011927

推荐阅读