2012-08-08 81 views
0

我想将日期格式化为特定的字符串,并且代码返回不正确的结果。将时间转换为字符串格式VB.net

CDate(RDate).ToString("ddMMy")

还是返回了一年,2位是有办法让它返回正确的只是最后一个数字?我知道我可以使用substring来获得结果,但我想使用格式字符串来允许客户创建自己的结果。

回答

2

只需用的String.Format()一起胶水他们:

Dim dt = CDate(RDate) 
    Dim s = String.Format("{0}{1}", dt.ToString("ddMM"), dt.Year Mod 10) 
+0

啊,这很聪明 – user1500403 2012-08-08 01:36:34

1

'y'只是表示如果年份介于0到9之间,则将删除前导0。没有获取年份最后一位的格式。

请参阅MSDN documentation了解可用的自定义格式。

1

自定义格式年份格式仅限于返回至少2位数的年份,Comfortent_tech提及您使用y的地方以及年份以00到09结尾的情况除外。您可以查看MSDN Documentation。你将需要使用字符串操作来实现你想要的。


使用这个事实,你可以尝试这样的事情。

Dim RDate As Date = Now.Date 
Dim NDate As Date = New Date((RDate.Year Mod 10), RDate.Month, RDate.Day) 
CDate(NDate).ToString("ddMMy") 
+0

这几乎是正确的:0到9年的特例是用y格式字符串处理的,它允许一个数字。 – 2012-08-08 01:08:48

+0

@competent_tech你是对的我编辑它。它只会在世纪的1/10工作。 – 2012-08-08 01:14:52

+0

谢谢你们,我确实看到了MS的格式化,但我想可能是我遗漏了一些东西,显然不是。 – user1500403 2012-08-08 01:38:09

0

试试这个代码:

Dim dt As DateTime = DateTime.Now 

CDate(dt).ToString("ddMMyy").Remove(4, 1) 

这个代码删除第2位年份值。

相关问题