是否有string
格式化为指定的格式?
例如:
如果字符串值为
"05/05/2013 05:06:23"
如果格式类型为
"d"
因此,如果我们传递两个值,则输出应为
05/05/2013
我尝试使用函数Format("stirng value","format")
,但这给了format
作为o / p。
注意:该功能适用于所有datatypes
。
答案 0 :(得分:1)
您必须将其解析为DateTime
对象,然后再使用指定格式的ToString
。
Dim str = "05/05/2013 05:06:23"
Dim ci = new CultureInfo("en-US")
Dim formattedDate = DateTime.Parse(str).ToString("dd/MM/yyyy", ci) // Returns 05/05/2013"
不,没有这样的东西适用于所有数据类型。
如果要转换其他数据类型(例如Decimal
),请先将字符串转换为相应的类型(Decimal.Parse
.. iec),然后再次使用ToString作为所需格式。< / p>
答案 1 :(得分:1)
您可以像这样创建自己的功能..
此函数可以接受任何类型并返回任何类型(仅在int和date上测试)
Function ChangeThis(ByVal var As Object, ByVal Type As String) As Object
If Not var.GetType.IsValueType() Then Return Nothing
Select Case var.GetType().ToString
Case "System.Int32" : MsgBox("Integer 32")
Case "System.DateTime"
If Type = "d" Then Return Convert.ToDateTime(var).Date
End Select
Return ""
End Function
你可以测试它
Dim s As Date = ChangeThis(Now(), "d")
MsgBox(s)
这不太好,但它可以帮助..
答案 2 :(得分:1)
VB.NET Format
函数会给你你想要的东西;您只需要read the documentation以确保提供已知格式:
> (Strings:Format "12-03-04 5:01:23.456" "d")
d
> (Strings:Format "12-03-04 5:01:23.456" "Short Date")
12/03/2004
> (Strings:Format "12-03-04 5:01:23.456" "Long Date")
Friday, 12 March 2004
> (Strings:Format "50123.456" "Currency")
$50,123.46
>
以上实际上是DotLisp及其输出,但它只是调用Microsoft.VisualBasic.Strings.Format
。
答案 3 :(得分:0)
要使其工作,您必须首先将字符串解析为日期时间,然后您可以使用:
myDateVariable.ToString("d")
答案 4 :(得分:0)
尝试使用the .net string.format功能。但是,格式字符串需要准确指定所需的输出。只需使用“format”作为格式字符串就会输出“format”,正如您已经发现的那样。
答案 5 :(得分:0)
尝试
Convert.ToDateTime("05/05/2013 05:06:23").ToString("dd/MM/yyyy")
答案 6 :(得分:0)
你可以试试这个。
Dim strRawdate As String = "05/05/2013 05:06:23"
Dim dt As DateTime = DateTime.ParseExact(strRawdate, "M/d/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)
Dim reformatDate As String = dt.ToString("M/d/yyyy", System.Globalization.CultureInfo.InvariantCulture)