有时用户会玩弄系统日期格式。我如何检查系统日期是否已更改并且与我存储的日期格式不同。
我找到了解决方案,但在我看来不是很好。我通过 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;
}
我认为最好的方法是在开始时设置系统格式,但我不知道该怎么做。
有人把日期时间改成另一种格式我在备份的时候没注意,结果如上。意外等着这一天!当我使用前一天的备份并将格式设置为它的值时,除了丢失一天之外,一切都很好。
最佳答案
您的数据库将日期存储为日期,而不是字符串,不是吗?
要检查当前 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/