我有一个字符串的格式为:19/8/1988
注意: String DateOfBirth=" 19/8/1988"
当我使用Datetime.parse(DateOfBirth)
时,它会给出无效日期格式错误
。
我也无法使用cdate(DateOfBirth)
。
当我以mm/dd/yyyy的格式输入字符串,即8/19/1988
时,就不会出现错误。
请帮我将字符串转换为mm/dd/yyyy
格式的日期。
我有一个字符串的格式为:19/8/1988
注意: String DateOfBirth=" 19/8/1988"
当我使用Datetime.parse(DateOfBirth)
时,它会给出无效日期格式错误
。
我也无法使用cdate(DateOfBirth)
。
当我以mm/dd/yyyy的格式输入字符串,即8/19/1988
时,就不会出现错误。
请帮我将字符串转换为mm/dd/yyyy
格式的日期。
小写的mm
表示分钟而不是月份,您需要使用大写的M
(单个字符)。
但是还需要使用CultureInfo.InvariantCulture
的 ParseExact
。否则,您的当前区域设置将用于获取日期分隔符,这不一定是/
(在许多国家中是.
)。
因此,这适用于任何文化:
DateTime.ParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture)
如果您想验证给定的日期字符串,可以使用DateTime.TryParseExact
:
DateTime dt;
if(DateTime.TryParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
// success, dt contains the correct date now
}
else
{
// not a valid date
}
var date = DateTime.ParseExact(DateOfBirth.Trim(), "d/M/yyyy", CultureInfo.InvariantCulture);
如果你有多种日期时间格式,那么
var date = DateTime.ParseExact(DateOfBirth.Trim(), new string[] {"d/M/yyyy","M/d/yyyy"} , CultureInfo.InvariantCulture, DateTimeStyles.None);
控制面板-->区域和语言-->格式-->其他设置-->
日期以更改所需的格式。这样手动解决了你的问题,或者可以通过编程来解决。DateTime.ParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture)
网站开发者,这是一段vb代码,需要转换为C#。
Dim time As DateTime = DateTime.Now
Dim format As String = "dd/MM/yyyy"
' you can set format to both "dd/MM/yyyy" or "d/MM/yyyy"
MsgBox(time.ToString(format))
让我知道它是否有帮助。
TryParseExact
而不是Parse
,请参考http://msdn.microsoft.com/en-us/library/h9b85w22.aspx - Kamil BudziewskiDateTime.ParseExact
只需在 StackOverflow 上搜索,您就会找到数百万个答案。 - I4Vmm
表示分钟而不是月份,因此在使用TryParseExact
时,请写成MM
。 - Kamil Budziewski