微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决选择以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,out date))
{
    // Parsed correctly
}
else
{
    // Invalid string!
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。