2016-04-05 213 views
-1

我有一个字符串,其格式为日期。 “24-11-2015”或“dd-MM-yyyy”。我需要将它转换为这种格式的日期。 “2015-11-24”或“yyyy-MM-dd”。 我已经尝试了几种方法,它们都依赖于我的系统格式来实现此功能。如果我用英文时间格式在计算机上运行我的程序,则可以运行。使用格式将字符串转换为日期(VB.net)

Date.ParseExact("24-11-2015", "dd-MM-yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) 

但是,如果我在运行丹麦语格式的计算机上运行它,我会因为没有第24个月而收到错误。我如何使日期格式独立于我的系统时间格式。

+0

DateTime变量没有格式。它们是以字符串的形式给出它们的'格式'。从你的问题中不清楚你是否有一个表示日期的字符串,并且你想将它解析成DateTime变量,或者如果你有一个DateTime变量,并且希望以某种方式显示 – Steve

+0

如果这是一个桌面应用程序,TryParse可用于测试当前文化所使用的所有可能的格式......并且一些文化已超过100个。 – Plutonix

+0

如果用户可以直接输入完整字符串,则遇到问题。系统无法可靠地分辨出m-d-yyyy和d-m-yyyy之间的差别。您需要使用单独的字段或日期选择器。 – rheitzman

回答

1

解决方案:

Dim dateTime As String = "24-11-2015" 
Dim dt As DateTime = Convert.ToDateTime(dateTime) 
Console.WriteLine("{0}-{1}-{2}", dt.Year, dt.Month.ToString("D2"), dt.Day.ToString("D2")) 

解决方案2:

Dim dateTime As String = "24-11-2015" 
Dim dt As DateTime = Convert.ToDateTime(dateTime) 
Dim format As String = "yyyy-MM-dd" 
Dim str As String = dt.ToString(format) 
Console.WriteLine(str) 

您也可以尝试Formatting Date and Time for a Specific Culture

相关问题