C# 中的字符串格式 / windows

String Format In C# / windows

我的 C# 应用程序中有一个组件提供如下字符串:

"2004/1/11"

"2015/12/10"

"1998/1/2"

但我想将它们更改为这些格式:

"2004/01/11"

"2015/12/10"

"1998/01/02"

有什么想法吗?

这可能会帮助您解决问题: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

也许时间格式设置可以解决您的问题。

看来问题中的字符串实际上是日期,那么DateTimeclass是您要找的:

  String source = "2015/12/10";
  String result = DateTime
   .ParseExact(source, "yyyy/M/d", CultureInfo.InvariantCulture)
   .ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);

万一 字符串 而不是日期 (比如,一些看起来像日期的奇怪代码)而你只需要 插入零:

  String source = "2015/12/10"; 
  String result = Regex
    .Replace(source, "(?<=/)[0-9](?![0-9])", match => "0" + match.Value);

它的日期所以你可以这样转换它

string str = "2004/1/11";
DateTime dt = DateTime.ParseExact(str, "yyyy/M/dd", CultureInfo.InvariantCulture);
string newstr = dt.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture)

尝试:

   string InputStr = "2004/1/11";
   String OutputStr = String.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(InputStr));

如果您不想将字符串转换为日期并返回,您可以使用 Regex.Replace 方法。代码可能看起来像这样:

myString = Regex.Replace(myString,@"[^\d](\d)(?=(/|$))","/0");

编辑:更正了模式。