c# 自动将 am/pm 添加到我的(字符串)日期值

标签 c# mysql datagridview

我有一个 datagridview 将显示从数据库(mysql)中提取的日期值,请参见图片 enter image description here

数据库中的值为(数据类型为日期时间)

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/

相关文章:

php - 有多个 OR 子句会减慢查询速度吗

c# - 如何从 C# 数据表在 MySql 中创建临时表?

c# - 滚动时 Gridview 卡住/固定标题丢失背景颜色

c# - C#/.NET 中方法的自动文档异常

c# - 接口(interface)是否应该为拮抗剂方法提供定义?

c# - 如何在 .NET 中循环并测试已实例化对象的属性值

c# - 适用于 A-Za-z0-9 撇号、空格和带范围的连字符的适当正则表达式

mysql - 如何根据主表中的值从另一个表中选择另外两个列?

c# - 检查库存是否有足够的库存

c# - 按用户输入过滤获取错误消息无法获取表 0