所以我遇到了一些麻烦。我正在尝试将yy-mm-dd的日期格式转换回dd.mm.yyyy。我尝试用查找来做,但我可以得到如何只得到它的第二个条目。
Dim lookupDateYear = DateString.ToLookup(Function(l) If(Len(l) < 2, l, Mid(l, 1, 2)), Function(l) Split(l, "-", 3).first)
Dim lookupDateDay = DateString.ToLookup(Function(l) If(Len(l) < 2, l, Mid(l, 1, 2)), Function(l) Split(l, "-", 3).last)
答案 0 :(得分:0)
第二个虽然正则表达式选项无效,因为初始字符串没有一年中的世纪 我们可能会在某些条件下使用它,但这会很麻烦且容易出错
这给我们留下了DateTime的东西:
DateTime
对象离开了我们:
' CultureInfo requires an Imports of System.Globalization
Dim dt As DateTime = DateTime.ParseExact (DateString, "yy-MM-dd", CultureInfo.InvariantCulture)
Dim result As String = dt.ToString ("dd.MM.yyyy")
答案 1 :(得分:0)
不是最漂亮的,但却能胜任
Dim parts = DateString.Split(New Char() {"-"c})
Dim Year As String = "20" & parts(0)
Dim Month As String = parts(1)
Dim Day As String = parts(2)
Dim result As String = (Day & "." & Month & "." & Year)
如果有人有更聪明的方法,我很期待看到这一点。
答案 2 :(得分:0)
你一定很难做到这一点。这应该更好地很多:
DateTime.ParseExact(DateString, "yy-MM-dd", Nothing).ToString("dd/MM/yy")
请注意,此处的/
字符是为给定文化定义的日期分隔符字符的占位符(在这种情况下,Nothing
映射到您当前的默认文化。不变文化也经常有用)。如果区域性设置已将.
定义为日期分隔符,则您会在输出中看到.
而不是/
。如果您想要.
而不管日期分隔符,只需将其更改为使用格式字符串中的.
代替/
,或使用CultureInfo
,{{ 1}}或DateTimeFormatInfo
对象,其中IFormatProvider
是日期分隔符。
根据您打算如何使用它,您也可以更好地保留日期对象,而不是在解析后将其转换回字符串。