我的应用程序使用的是SQLite数据库,它没有DateTime格式。因此,这些值以UNIX格式存储,而信息则使用DataGridView显示。什么函数可以将UNIX转换为DateTime格式并在DataGridView中显示?
我尝试在DataTable中转换此列,但在数据库中,此列具有INT格式,因此我犯了一个错误。我还尝试向DataTable添加一个新列,并使用Expression填充该列。
string sql = "Select * from Main";
var conn = new SQLiteConnection("Data Source = FistDB.db;Version = 3");
conn.Open();
DataSet ds = new DataSet();
var da = new SQLiteDataAdapter(sql, conn);
da.Fill(ds);
dataGridView1.DataSource = dt;
2条答案
按热度按时间webghufk1#
修改SQL请求以获得所需格式的时间戳:
如果需要,使用“DATETIME(Col3,'LOCALTIME')”将时间戳转换为本地时间。
参见https://www.sqlite.org/lang_datefunc.html
jaxagkaj2#
最后,您总是希望在
DateTime
结构中处理时间戳,因此最好在管道中尽早转换UNIX epoch。这将正确处理时区信息、夏季白天保存和文化信息(以及更多)。这是你的一个句子:
PS:确保使用
FromUnixTimeMilliseconds
毫秒更多信息:https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset?view=net-7.0
PS2:时间抽象API将在.NET 8中使用change,但不会影响此用例。