c# - 将 DateTime 压缩为字符串的最佳方法?
问题描述
我将一个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
推荐阅读
- azure - 使用 VSTS CI/CD 部署 azure web 应用程序和他们的 webjobs
- python - 为什么搜索查询表显示表头,而不是 BeautifulSoup (Python) 中的数据?
- angular - Ionic/Chart.js - 无法读取未定义的属性“nativeElement”
- javascript - 来自 rails 的 JSON 对象未在 .js.erb 中解析
- dart - Flutter carousel pro 图像缓存如何
- python - 如何使用 Flask + WSGI 在我的项目中使用文件夹?
- r - 如何在使用 stringr::word 循环处理多个字符串时绕过 NA?
- sql - 如何在 psql LIKE 查询正则表达式中使用变量
- java - 将数据库记录加载到 Spinner 时出错
- extbase - 在后端范围内运行脚本/设置全局 $BE_USER 对象?