将dd / MM / yyyy HH:mm tt转换为MM / dd / yyyy HH:mm Tt in C#

时间:2017-02-17 02:15:45

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我想将字符串转换为:"25/12/2017 4:00 PM""12/25/2017 4:00 PM"。我的代码:

var TDXRSC = "25/12/2017 4:00 PM";
DateTime.ParseExact(TDXRSC, "dd/MM/yyyy hh:mm tt", CultureInfo.InvariantCulture);

但它不起作用。

4 个答案:

答案 0 :(得分:2)

问题是您的日期格式为dd/MM/yyyy hh:mm tt,但参考日期只有一位数小时4。你可能最好不要期望领先的零几天,几个月或几小时。

尝试..

var TDXRSC = "25/12/2017 4:00 PM";
var input = DateTime.ParseExact(TDXRSC, "dd/MM/yyyy h:mm tt", CultureInfo.InvariantCulture);

这仍然会解析2位数小时。因此var TDXRSC = "25/12/2017 12:00 PM";仍会正确解析。

答案 1 :(得分:0)

var TDXRSC = "25/12/2017 4:00 PM";
var input = DateTime.ParseExact(TDXRSC, "dd/MM/yyyy h:mm tt", CultureInfo.InvariantCulture);
var output = input.ToString("MM/dd/yyyy h:mm tt");

当您致电ParseExact时,您告诉编译器传入日期是什么格式。然后,您可以使用ToString()方法为解析日期的字符串表示形式提供格式。

答案 2 :(得分:0)

希望.TryParseExtract更安全地用于转换,请使用如下内容:

var dateString = "25/12/2017 4:00 PM";
DateTime inputDate; 
if(DateTime.TryParseExact(dateString, "dd/MM/yyyy h:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out inputDate))
{
   var output = inputDate.ToString("MM/dd/yyyy hh:mm tt");
   Console.WriteLine(output);
}
else
{
     Console.WriteLine("Conversion failed");
}

Working Example

答案 3 :(得分:0)

var TDXRSC = "25/12/2017 4:00 PM";
DateTime date = Convert.ToDateTime(TDXRSC);
string Format = date.ToString("MM/dd/yyyy h:mm tt");