我正在使用Windows应用程序并将数据从sqlite显示到datagriview但我无法理解为什么我的日期格式在显示期间会发生变化。
sqlite日期格式DateTime 2012-02-20 16:42:10.000
datagridview日期格式20/02/2012 16:42:10
我的代码
SQLiteConnection m_dbConnection;
m_dbConnection = new SQLiteConnection("Data source = F:/Explor/final test/WebMobility.db; Version=3;");
m_dbConnection.Open();
SQLiteCommand myCommand = new SQLiteCommand();
myCommand.Connection = m_dbConnection;
myCommand.CommandText = "select CompanyId,DateTime,description from VerbaliData";
DataTable data = new DataTable();
SQLiteDataAdapter myAdapter = new SQLiteDataAdapter(myCommand);
myAdapter.Fill(data);
dataGridView1.DataSource = data;
this.dataGridView1.Refresh();
if (dataGridView1.RowCount > 0)
{
string value = "";
DataGridViewRow dr = new DataGridViewRow();
StreamWriter swOut = new StreamWriter("F:/Explor/final test/finaltest12.csv");
//write header rows to csv
for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
swOut.Write(dataGridView1.Columns[i].HeaderText);
}
swOut.WriteLine();
//write DataGridView rows to csv
for (int j = 0; j <= dataGridView1.Rows.Count - 1; j++)
{
if (j > 0)
{
swOut.WriteLine();
}
dr = dataGridView1.Rows[j];
for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
value = dr.Cells[i].Value.ToString();
//replace comma's with spaces
value = value.Replace(',', ' ');
//replace embedded newlines with spaces
value = value.Replace(Environment.NewLine, " ");
swOut.Write(value);
}
}
swOut.Close();
}
m_dbConnection.Close();
答案 0 :(得分:0)
SqlLite保存的日期时间格式有两件事称为通用格式,可在所有应用程序中访问。 这有助于我们从本地化问题中解脱出来。 sqlite日期格式DateTime 2012-02-20 16:42:10.000
DataGrid显示这是因为它提取你的系统格式,即DD / MM / YYYY,如果你需要以相同的格式显示它,你需要声明它是明确的。 例如Date.ToUniversalTime() datagridview日期格式20/02/2012 16:42:10
答案 1 :(得分:0)
数据库始终以yyy-MM-dd
格式存储。 DatGrid
中的日期会根据您的机器日期格式显示格式。
您可以通过以下示例看到这一点。查询您的数据库以获取如下所示的当前日期
select FORMAT(GETDATE(),'dd/MM/yyy');
结果为2014-03-12 14:50:45.450
您可以通过Format
函数更改此内容。
select FORMAT(GETDATE(),'dd/MM/yyy');
如下所示更改您的查询可以解决问题。
select CompanyId, FORMAT(GETDATE(),'yyy-MM-dd hh:mm:ss'), description from VerbaliData;