转换日期时间格式?

3
我试图将日期时间从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).aspxDateTime.ParseExact方法将指定格式的字符串表示形式转换为DateTime对象。该方法要求输入的日期和时间字符串与指定的格式字符串完全匹配,否则会引发异常。该方法可用于将不同格式的日期和时间字符串解析为DateTime对象,并且支持使用自定义格式字符串进行解析。 - germi
你想将它保留为日期时间还是字符串? - SOfanatic
1
你不需要转换它,只是以不同的字符串格式化它。 - Roy Dictus
1
顺便提一下,一个“DateTime”本身并没有任何格式。它基本上只是一个打扮得漂漂亮亮的“Int64”。有些字符串仅以某种格式表示“DateTime”。 - Corak
我需要将它保存在一个字符串中。 - Nimmi
http://www.dotnetperls.com/datetime-format - शेखर
9个回答

5
您需要使用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 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 没有 format,字符串才有。
如果你的 12/20/2013 17:40 是一个 DateTime,你可以使用 DateTime.ToString(String, IFormatProvider) 方法来格式化它,例如:
date.ToString("dd MMM yyyy hh:mm tt", CultureInfo.InvariantCulture);

如果你的 12/20/2013 17:40 是一个字符串,那么你可以使用 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

这里有一个演示

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


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

0

0
在 C# 6.0 中,您可以使用字符串插值来显示格式化的日期。
DateTime date = DateTime.Parse("12/20/2013 17:40");
string formattedDate = $"{date: dd MMM yyyy hh:mm tt}";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接