我正在尝试将日期格式化为特定字符串,并且代码返回不正确的结果。
CDate(RDate).ToString("ddMMy")
将年份返回为 2 位数字有没有办法让它返回正确的最后一位数字?我知道我可以使用子字符串来获得结果,但我想使用格式字符串来允许客户创建自己的。
我正在尝试将日期格式化为特定字符串,并且代码返回不正确的结果。
CDate(RDate).ToString("ddMMy")
将年份返回为 2 位数字有没有办法让它返回正确的最后一位数字?我知道我可以使用子字符串来获得结果,但我想使用格式字符串来允许客户创建自己的。
只需将它们与 String.Format() 粘合在一起即可:
Dim dt = CDate(RDate)
Dim s = String.Format("{0}{1}", dt.ToString("ddMM"), dt.Year Mod 10)
'y' 只是表示如果年份介于 0 和 9 之间,则要删除前导 0。没有格式可以仅获取年份的最后一位。
有关可用的自定义格式,请参阅MSDN 文档。
自定义格式年份格式仅限于返回至少 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")
试试这个代码:
Dim dt As DateTime = DateTime.Now
CDate(dt).ToString("ddMMyy").Remove(4, 1)
此代码删除 2 位数年份值中的第一个。