将 DateTime 压缩成字符串的最佳方法?

Best way to compress a DateTime into a string?

我正在将一个 DateTime 值存储到一个字符串中,以便与其他数据一起存储在数据库中。 我知道这不是存储 DateTime 的最佳方式。话虽如此,我还是想尽可能少占用字符来存储。

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

您可以使用 六个 个字符,方法非常简单:

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