C# 如何解析包含“0”的日期字符串;第17条;或者类似的后缀?
我有一个C# 如何解析包含“0”的日期字符串;第17条;或者类似的后缀?,c#,vb.net,datetime,datetime-format,C#,Vb.net,Datetime,Datetime Format,我有一个字符串,看起来像“2012年12月17日”,我想将其转换为日期时间,格式为dd/MM/yyyy 我一直在链接,但这是我想要实现的相反 我可以通过删除后缀(“17”中的“th”)和子字符串等,然后将其转换为datetime,但有没有直接的方法实现这一点 C代码也可以 这是我目前的代码,但看起来很难看。。哈哈 Private Function gettime(ByVal thetime As String) As DateTime Dim result As Date
字符串
,看起来像“2012年12月17日”,我想将其转换为日期时间
,格式为dd/MM/yyyy
我一直在链接,但这是我想要实现的相反
我可以通过删除后缀(“17”中的“th”)和子字符串等,然后将其转换为datetime
,但有没有直接的方法实现这一点
C代码也可以
这是我目前的代码,但看起来很难看。。哈哈
Private Function gettime(ByVal thetime As String) As DateTime
Dim result As DateTime
Dim str1 As String = thetime
Dim str2 As String = str1
Dim ind As Integer = 0
ind = str1.IndexOf(" ")
str2 = str1.Substring(0, ind)
str2 = Trim(StrReverse(str2))
str2 = str2.Substring(2, 2)
str2 = StrReverse(str2)
ind = str1.IndexOf(" ")
str1 = str2 & str1.Substring(ind)
result = DateTime.Parse(str1)
Return result
End Function
你试过什么吗 试试这个:
Dim time As DateTime = DateTime.Parse("17th December 2012")
更新
如果问题只是序号,则可以创建一个简单的过程来删除它们:
Sub RemoveOrdinals(time As String) As String
time = time.Replace("nd", "")
time = time.Replace("rd", "")
time = time.Replace("st", "")
time = time.Replace("th", "")
Return time
End Sub
在执行
DateTime
转换之前,只需调用它。此代码适用于我:
C#:
string datestring=“2012年12月17日”;
int indexOfFirstLetter=Regex.Match(
日期字符串,
“[a-z]”,
RegexOptions.IgnoreCase)索引;
datestring=datestring.Remove(indexOfFirstLetter,2);
DateTime date=DateTime.Parse(日期字符串);
VB.Net:
Dim datestring As String = "17th December 2012"
Dim indexOfFirstLetter As Integer = Regex.Match( _
datestring, _
"[a-z]", _
RegexOptions.IgnoreCase).Index
datestring = datestring.Remove(indexOfFirstLetter, 2)
Dim yourdate As DateTime = DateTime.Parse(datestring)
您可以为解析添加多种格式
Dim formats() As String = {"dd MMMM yyyy", "dd\s\t MMMM yyyy", "dd\t\h MMMM yyyy"}
d = DateTime.ParseExact(s, formats, Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None)
谢谢,但它返回一个异常,称为“System.FormatException”。我尝试过搜索datetime格式,但没有找到适合我问题的格式。
RemoveOrdinals
方法无法按预期工作!考虑<代码>八月<代码>结束在<代码> st >代码>中,您将得到一个日期:<代码> 21 AUGU 2012 < /代码>。谢谢