0

我正在尝试将日期格式化为特定字符串,并且代码返回不正确的结果。

CDate(RDate).ToString("ddMMy")

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

4

4 回答 4

2

只需将它们与 String.Format() 粘合在一起即可:

    Dim dt = CDate(RDate)
    Dim s = String.Format("{0}{1}", dt.ToString("ddMM"), dt.Year Mod 10)
于 2012-08-08T01:28:07.327 回答
1

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

有关可用的自定义格式,请参阅MSDN 文档

于 2012-08-08T01:06:42.887 回答
1

自定义格式年份格式仅限于返回至少 2 位数的年份,除非 Compentent_tech 提到您使用 y 并且年份以 00 到 09 结尾。您可以查看MSDN 文档。您将需要使用字符串操作来实现您想要的。


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

Dim RDate As Date = Now.Date
Dim NDate As Date = New Date((RDate.Year Mod 10), RDate.Month, RDate.Day)
CDate(NDate).ToString("ddMMy")
于 2012-08-08T01:07:43.307 回答
0

试试这个代码:

Dim dt As DateTime = DateTime.Now

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

此代码删除 2 位数年份值中的第一个。

于 2012-08-08T04:03:50.770 回答