c# - 如何检查系统日期格式是否与存储在mysql中的不同

标签 c# mysql

有时用户会玩弄系统日期格式。我如何检查系统日期是否已更改并且与我存储的日期格式不同。

我找到了解决方案,但在我看来不是很好。我通过 sysdate.Substring(0,4) 和 DataDate.Substring(0,4) 比较 system_date 和 data_date 的年份

但用户可以更改日期 yyyy-dd-MM 或其他格式。

有没有更准确的方法呢?

    public static bool DateFormatChanged()
    {
        bool result=true;
        string Sys_date = DateTime.Now.ToString("d");
        string Data_date="";
        using (MySqlConnection conn = new MySqlConnection(PublicVariables.cs))
        {
            conn.Open();
            using (MySqlCommand cmd = new MySqlCommand("SELECT MAX(st_date) as d_date FROM stockdata", conn))
            {
                MySqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    Data_date = reader["d_date"].ToString();
                    if(Sysdate.Substring(0,4) != Data_date.Substring(0,4))
                        result =false;
                }
            }
        }
        return result;
    }

我认为最好的方法是在开始时设置系统格式,但我不知道该怎么做。

Data before restoration

Data restored

Database after restoration

有人把日期时间改成另一种格式我在备份的时候没注意,结果如上。意外等着这一天!当我使用前一天的备份并将格式设置为它的值时,除了丢失一天之外,一切都很好。

最佳答案

您的数据库将日期存储为日期,而不是字符串,不是吗?

要检查当前 UI 日期格式,您可以使用

Dim cc = Threading.Thread.CurrentThread.CurrentUICulture
Dim dateFormat = cc.DateTimeFormat.ShortDatePattern
Console.WriteLine(dateFormat) ' outputs, e.g., dd/MM/yyyy

对于您的程序来说,日期的显示方式应该无关紧要:这取决于用户希望如何查看日期,您的程序应该尊重该选择。

关于c# - 如何检查系统日期格式是否与存储在mysql中的不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512505/

相关文章:

MySQL 在使用 UNION 的同时使用 ORDER BY

c# - asp.net如何对GridView中的数据进行排序

jquery - javascript jquery 将 mysql 中的 json 对象保存为字符串

mysql - FindAll 在 Sequelize 查询中包含更多表

MySQL SELECT 记录从特定日期开始不存在

php - 'xxx' 中的未知列 'where clause'

C# - 在将项目添加到 ListView 时更新标签

c# - 如何将图像作为请求参数发布到Azure Function?

c# - 日期时间格式不正确

c# - 使用正则表达式以任意顺序查找两个字符串