2013-12-19 248 views
2

我试图将12/20/2013 17:40格式的日期时间转换为以下格式转换日期时间格式?

20 Dec 2013 05:40 pm。怎么可能?

+6

DateTime.ParseExact:http://msdn.microsoft.com/en-us/library/System.DateTime.ParseExact(v=vs.110).aspx – germi

+0

你想将其保留为日期时间或字符串? – SOfanatic

+1

你不转换它,你只是格式化为不同的字符串。 –

回答

4

您需要使用DateTime.TryParseExact。这应该这样做

string originalDate = "2/20/2013 17:40"; 
DateTime parsedDate; 
if (DateTime.TryParseExact(originalDate, "M/dd/yyyy HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate)) 
{ 
    string requiredFormat = parsedDate.ToString("dd MMM yyyy hh:mm ttt"); 
} 

输出:

20 Feb 2013 05:40 PM 
3
mydatetime.ToString("dd MMM yyyy hh:mm tt"); 
2
dt.ToString("dd MMM yyyy hh:mm tt"); 
2
dateTime.ToString("dd MMM yyyy hh:mm tt"); 
1

方法1:,如果您有日期时间在String格式

String str = "12/20/2013 17:40";//20 Dec 2013 05:40 pm 
DateTime result; 
string date=""; 
if (DateTime.TryParseExact(str, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out result)) 
date=result.ToString("dd MMM yyyy hh:mm tt"); 

方法2:,如果您有日期时间在DateTime变量。

String strdatetime=datetime.ToString("dd MMM yyyy hh:mm tt"); 
0
DateTime time = DateTime.Now; 
Console.WriteLine(time.ToString("dd MMM yyyy hh:mm tt")); 
0

首先,DateTime没有格式,琴弦有..

如果您的12/20/2013 17:40DateTime,您可以使用DateTime.ToString(String, IFormatProvider)方法来格式化它;

date.ToString("dd MMM yyyy hh:mm tt", CultureInfo.InvariantCulture); 

如果您12/20/2013 17:40string,那么你可以使用DateTime.ParseExact(String, String, IFormatProvider)方法等;

string s = "12/20/2013 17:40"; 
var date = DateTime.ParseExact(s, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture); 
Console.WriteLine(date.ToString("dd MMM yyyy hh:mm tt", CultureInfo.InvariantCulture)); 

输出将;

20 Dec 2013 05:40 PM 

这里一个demonstration

欲了解更多信息,请看看;