我试图使用带前导零的String.Format字符串
Dim formatstring As String = ("{0,0}{1}{2,0:YYYY-MM-DD}{3}{4,0:00000}{5}{6,0:00000}{7}{8}{9}{10}{11}{12}")
{4,0:00000}它将在左边填充零
例
014
至00014
{6,0:00000}它也会在左边填零
例
547
至00547
但是这仍然没有发生,只是仍然显示014和547
答案 0 :(得分:1)
对于您想要发生的事情,在第4和第6个索引中传递的对象需要支持IFormattable
接口。 From the docs:
如果指定 formatString,,则格式项引用的参数必须实现IFormattable接口。支持格式字符串的类型包括:
- 所有积分和浮点类型。 (请参阅Standard Numeric Format Strings和Custom Numeric Format Strings.)
- DateTime和DateTimeOffset。 (请参阅Standard Date and Time Format Strings和Custom Date and Time Format Strings。)
- 所有枚举类型。 (见Enumeration Format Strings。)
- TimeSpan值。 (请参阅Standard TimeSpan Format Strings和Custom TimeSpan format Strings。)
- 的GUID。 (参见Guid.ToString(String)方法。)
您的值为014
,而不仅仅是14
,意味着您所拥有的已经是一个字符串。 String类型不实现IFormattable。要使其工作,您需要首先将字符串解析为整数或类似类型。