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

时间:2011-05-26 10:17:30

标签: c# .net vb.net datetime datetime-format

在早期的vb.net 2008中,我使用DateTime以dd/mm/yy格式读取日期。 我用来将文化信息更改为英国格式。因此,将以dd/mm/yy格式从SQL服务器中选择日期。

但我知道与CultureInfo一起玩是不好的。即使我使用了以下方式。

对我来说还有其他更好的想法吗?

Sub Form_Load()
    Thread.CurrentThread.CurrentCulture = New CultureInfo("en-GB", False)    
End Sub

还有其他更好的想法吗?感谢您的想法。

谢谢&问候。

4 个答案:

答案 0 :(得分:2)

从DateTime到string:

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);

答案 1 :(得分:1)

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);
}

这样您就不会更改当前上下文的文化信息。这确实假设您事先知道格式是什么。

答案 2 :(得分:1)

在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);

答案 3 :(得分:1)

您可以使用CultureInfo格式化日期,而无需为整个帖子设置文化​​,这要归功于IFormatProvider界面:

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!
}
相关问题