VB.Net将日期格式从年月日转换回标准日期格式(年月日)

VB.Net将日期格式从年月日转换回标准日期格式(年月日),vb.net,Vb.net,所以我遇到了点麻烦。我正在尝试将yy-mm-dd的日期格式转换回dd.mm.yyyy。我试着用lookup来做,但是我可以得到如何只获取第二个条目 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)

所以我遇到了点麻烦。我正在尝试将yy-mm-dd的日期格式转换回dd.mm.yyyy。我试着用lookup来做,但是我可以得到如何只获取第二个条目

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)
Dim lookupdateyar=DateString.ToLookup(函数(l)If(Len(l)<2,l,Mid(l,1,2)),函数(l)Split(l,“-”,3)。第一个)
Dim lookupDateDay=DateString.ToLookup(函数(l)If(Len(l)<2,l,Mid(l,1,2)),函数(l)Split(l,“-”,3)。last)

秒后,尽管Regex选项无效,因为初始字符串没有年份。
我们可能会将它与一些条件一起使用,但这会很麻烦且容易出错

这就给我们留下了日期时间的问题:

  • 首先,我们使用(或DateTime.TryParseExact)来。。。根据给定的格式将字符串解析为
    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")

虽然不是最漂亮的,但它很管用

    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)

如果有人有更聪明的方法来做到这一点,我期待着看到这一点。

你肯定是在用艰难的方式来做到这一点。这应该会更好:

请注意,此处的
/
字符是为给定区域性定义的日期分隔符字符的占位符(在本例中,
无任何内容
映射到当前默认区域性。不变区域性通常也很有用)。如果区域性设置已将
定义为日期分隔符,您将在输出中看到
而不是
/
。如果希望使用
而不考虑日期分隔符,只需将其更改为在格式字符串中使用
而不是
,或使用
文化信息
日期时间格式信息
,或
格式提供者
对象,其中
是日期分隔符


根据您计划如何使用它,您也可以更好地保留日期对象,而不是在解析后将其转换回字符串。

您不能将日期字符串解析为
date
对象,然后使用它的
ToString
格式吗?或者使用正则表达式,这比你实际做的要简单。你到底要怎么做?我从来没有用过那么多,我怎么能从那根弦中获得3个独立的YY.MM.DD呢?如果我达到了这一点,我可以按照我所需要的方式重新向他们解释。这实际上给我留下了一个系统。FormatException,我现在也为自己找到了一个解决方案,也许不是最漂亮的,但它确实起到了作用。如果你有比这更好的主意,让我知道:)我对我的工作不满意approach@Alex根据“如果您有该例外情况,则可能是1)您没有输入格式(不太可能)2)小时指示符AM/PM与输入不正确(此处似乎也不太可能),3)输入没有您提供的格式(很可能是此格式)。如果没有合适的示例代码来检查问题,那么除了您以外的任何人都很难进一步检查
DateTime.ParseExact(DateString, "yy-MM-dd", Nothing).ToString("dd/MM/yy")