选择以dd / mm / yy格式选择和读取日期的更好方法?

| 在较早的vb.net 2008中,我使用DateTime以
dd/mm/yy
格式读取日期。 我习惯将文化信息更改为英国格式。这样就可以从SQL Server中以“ 0”格式选择日期。 但是我知道和ѭ2一起玩不是很好。即使我以如下方式使用。 还有其他更好的主意吗?
Sub Form_Load()
    Thread.CurrentThread.CurrentCulture = New CultureInfo(\"en-GB\", False)    
End Sub
还有其他更好的主意吗?感谢您的想法。 感谢和问候。     
已邀请:
在C#中,您可以获得所需格式的日期字符串,例如,
string date = DateTime.Now.ToString(\"dd/MM/yyyy\");
如果要从表示特定区域性的DateTime的字符串值中获取DateTime对象,可以执行
     DateTime dt = new DateTime();
                DateTime.TryParse(\"16/01/2011\", System.Globalization.CultureInfo.CreateSpecificCulture(\"en-GB\"),
  System.Globalization.DateTimeStyles.None, out dt);
    
从DateTime到字符串:
string s = DateTime.Today.ToString(\"dd/MM/yyyy\");
从字符串到DateTime:
DateTime d;
bool success = DateTime.TryParseExact(\"26/05/2011\", \"dd/MM/yyyy\", CultureInfo.InvariantCulture, DateTimeStyles.None, out d);
    
DateTime->字符串
DateTime.Now.ToString( new CultureInfo(\"fr-FR\", false) );
字符串->日期时间: 首选方法可能是DateTime.Parse()
dateString = \"16/02/2008 12:15:12\";
try 
{
     dateValue = DateTime.Parse(dateString, new CultureInfo(\"en-GB\", false));
     Console.WriteLine(\"\'{0}\' converted to {1}.\", dateString, dateValue);
}   
catch (FormatException) 
{
     Console.WriteLine(\"Unable to convert \'{0}\'.\", dateString);
}
这样,您就不会更改当前上下文的区域性信息。但这确实假定您事先知道格式是什么。     
借助
IFormatProvider
界面,您可以使用CultureInfo格式化日期,而无需设置整个线程的区域性:
DateTime d = DateTime.Now;
CultureInfo c = new CultureInfo(\"en-GB\", false);
string s = d.ToString(c.DateTimeFormat);
这样做还有一个好处,就是您没有任何硬编码格式,并且如果用户更改了计算机上的本地化设置,则您的应用程序将反映他们的首选项。 您可以使用
DateTime.TryParse
来解析日期...
string s = \"01/01/2011\";
DateTime date;
if (DateTime.TryParse(s, out date))
{
    // Parsed correctly
}
else
{
    // Invalid string!
}
甚至可以使用
IFormatProvider
帮助
TryParse
编制格式。
CultureInfo c = new CultureInfo(\"en-GB\", false);
string s = \"01/01/2011\";
DateTime date;
if (DateTime.TryParse(s, c.DateTimeFormat, DateTimeStyles.None, out date))
{
    // Parsed correctly
}
else
{
    // Invalid string!
}
    

要回复问题请先登录注册