如何解决选择以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 举报,一经查实,本站将立刻删除。