我有一个 datagridview 将显示从数据库(mysql)中提取的日期值,请参见图片
数据库中的值为(数据类型为日期时间)
2018-02-28 00:00:00
2017-02-02 00:00:00
在程序代码中我使用此设置值
dataObj.special_from_date = (string)productData.Tables[0].Rows[i]["special_from_date"].ToString();
dataObj.special_to_date = (string)productData.Tables[0].Rows[i]["special_to_date"].ToString();
除了datagridview单元格之外,在文本字段中它还显示带有am/pm上午/下午文本的值,有人知道是什么原因吗?
------------------------更新------------------------ ---------
DateTime sfd = DateTime.Now;
if (productData.Tables[0].Rows[i]["special_from_date"].ToString() != "") {
//DateTime sfd = DateTime.TryParseExact(productData.Tables[0].Rows[i]["special_from_date"].ToString();
MessageBox.Show("tet");
if (DateTime.TryParseExact(productData.Tables[0].Rows[i]["special_from_date"].ToString(), "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out sfd))
{
// use d
MessageBox.Show(sfd.ToString());
}
}
<小时/>
public DataSet selectConnect(MySqlCommand cmd)
{
try
{
adapter = new MySqlDataAdapter();
ds = new DataSet();
cmd.CommandTimeout = 60;
cmd.ExecuteNonQuery();
adapter.SelectCommand = cmd;
adapter.Fill(ds);
adapter.Dispose();
cmd.Dispose();
}
catch (Exception ex)
{
// Show any error message.
MessageBox.Show(ex.Message);
}
return ds;
} //connect
<小时/>
dao dao = dao.GetInstance;
databaseConnection = dao.connect();
sqlCmd = new MySqlCommand(sql, databaseConnection);
DataSet ds = new DataSet();
databaseConnection.Open();
ds = dao.selectConnect(sqlCmd);
List<productData> products = dao.getProducts(ds);
productData product = products.First();
<小时/>
最佳答案
这是因为本地化会自动应用于您的结果。您可以在转换为字符串时格式化日期时间,这有助于避免这种情况。
dataObj.special_from_date = ProductData.Tables[0].Rows[i]["special_from_date"].ToString("MM/dd/yyyy hh:mm:ss");
关于c# 自动将 am/pm 添加到我的(字符串)日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42897604/