我有一个datagridview将显示从数据库中提取的日期值(mysql),参见图片
数据库中的值是(datatype是datetime)
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单元格,在textfield中它还会显示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();
答案 0 :(得分:0)
这是因为本地化会自动应用于您的结果。您可以在转换为字符串时格式化日期时间,这有助于您避免这种情况。
dataObj.special_from_date = productData.Tables [0] .Rows [i] [&#34; special_from_date&#34;]。ToString(&#34; MM / dd / yyyy hh:mm:ss&#34;);