要在字符串中更改的格式

时间:2012-08-29 05:11:30

标签: c# datetime

我的字符串包含值:08/20/2012-10.32.19

我希望字符串数据类型的输出本身为08/20/2012 10:32:19 [格式为MM/dd/yyyy HH:mm:ss]。

请帮助!!

3 个答案:

答案 0 :(得分:8)

您可以将字符串转换为DateTime,然后使用所需格式的.ToString()

DateTime dt = DateTime.ParseExact("08/20/2012-10.32.19", "M/d/yyyy-HH.mm.ss",CultureInfo.InvariantCulture);
string test = dt.ToString("MM/dd/yyyy HH:mm:ss");

测试将有

08/20/2012 10:32:19
根据评论

编辑

您可以指定多种日期格式,然后进行相应的解析。

string[] formats = new string[] { "M/d/yyyy-HH.mm.ss", "yyyy-M-d-HH.mm.ss" };
string dtTest1 = DateTime.ParseExact("08/20/2012-10.32.19",
                                     formats, 
                                     CultureInfo.InvariantCulture, 
                                     DateTimeStyles.None)
                                     .ToString("MM/dd/yyyy HH:mm:ss");

或单行

string dtTest2 = DateTime.ParseExact("08/20/2012-10.32.19",
                                     new string[] { "M/d/yyyy-HH.mm.ss", "yyyy-M-d-HH.mm.ss" }, 
                                     CultureInfo.InvariantCulture, 
                                     DateTimeStyles.None)
                                     .ToString("MM/dd/yyyy HH:mm:ss");

这将满足您的两种日期:

08/20/2012-10.32.19
2012-08-20-10.32.19

答案 1 :(得分:1)

您可以使用非常简单,因为您的字符串只需要格式化

String a="08/20/2012-10.32.19".Replace('-', ' ').Replace('.', ':');

我希望这对你有用

答案 2 :(得分:0)

我们在.Net

中有各种内置格式,如ToLongDateTimeToShortdateTime
string formatDate = txtdte.ToShortDateTime();

这会返回字符串,因此不需要任何其他转换。如果您具体了解格式,ToString会使用ToString("dd/mm/yyyy")

之类的参数