将字符串格式化为“dd / MM / yy”

时间:2016-08-17 11:12:08

标签: vb.net datetime-format

我有一个需要转换为“dd / MM / yy”的字符串。我将其转换为Date数据类型,然后将其格式化为字符串。我想知道是否有一种更简单/更优雅的方式。 这是我现在如何实现这个目标的一个例子

Dim strValue As String = "17/08/2016"
Dim dteValue as Date = Convert.ToDateTime(strValue)
strValue = dteValue.ToString("dd/MM/yy")

我正在寻找的是一种转换方式,无需将其转换为Date数据类型,是否可能?

2 个答案:

答案 0 :(得分:0)

您可以使用扩展方法:

public static string ToMyDateString(this string stringDate)
{
    return DateTime.Parse(stringDate).ToString("dd/MM/yy");
}

然后像这样使用它:

string strValue = "17/08/2016".ToMyDateString();

string strValue = "17/08/2016";
string strValueDate = strValue.ToMyDateString();

刚刚意识到你在VB.NET中,所以很确定它会被翻译过来。如果我有时间,我会尝试在VB.NET中完成。

VB.NET版

<System.Runtime.CompilerServices.Extension> _
Public Shared Function ToMyDateString(stringDate As String) As String
    Return DateTime.Parse(stringDate).ToString("dd/MM/yy")
End Function

警告 - 这刚刚通过转换器,因此可能需要进行调整。

答案 1 :(得分:0)

如果没有将其转换为日期,我建议:

        Dim strValue As String = "17/08/2016"
        strValue = strValue.PadLeft(6) & strValue.PadRight(2)

我的计算机需要1 ms才能处理上述代码10,000次,但处理你的代码需要22 ms。

编辑:如果日期有不同的长度,您可以拆分前进并重建它:

        Dim arrSplitValue() As String = Split("17/08/2016", "/")
        Dim strValue As String = arrSplitValue(0) & "/" & arrSplitValue(1) & "/" & arrSplitValue(2).PadRight(2)