C#中的日期和时间格式转换

时间:2012-08-25 06:44:27

标签: c# datetime iso8601

我有日期/时间格式,例如:

"2012-06-28T08:26:57Z"

使用什么样的日期/时间格式以及如何使用C#中的DateTime格式将其转换为以下格式:

"8/24/2012 4:09:17 AM"

8 个答案:

答案 0 :(得分:6)

你可以这样做:

string input = "2012-06-28T08:26:57Z";
var dt = DateTime.Parse(input);
string output = dt.ToString(@"MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

有关输入字符串各部分的含义,请查看以下链接:http://www.w3.org/TR/NOTE-datetime

答案 1 :(得分:2)

这是一个ISO8601日期/时间字符串。数字是年,月,日,小时,分钟和秒(按此顺序)。

“T”是占位符。它没有任何意义。

“Z”表示时间相对于GMT,而不是当地时区。

答案 2 :(得分:1)

这是通用可排序日期格式

您可以使用以下代码进行转换

 var dt = DateTime.Parse("2012-06-28T08:26:57Z");
 var newdt = String.Format("{0:G}", dt);  // "6/28/2012 1:56:57 PM"

<强>更新

你也可以尝试这个

var dt = DateTime.Parse("2012-06-28T08:26:57Z", System.Globalization.CultureInfo.InvariantCulture);
var newdt = String.Format("{0:G}", dt);

答案 3 :(得分:1)

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx这是你问题的答案。在这里,您可以看到如何创建不同的日期格式。根据此资源,您可以使用以下内容:

String olddate="2012-06-28T08:26:57Z";
DateTime date=Convert.ToDateTime(olddate);
String date1=date.ToString("M/d/yyyy h:m:s tt");

答案 4 :(得分:1)

尝试使用这个东西。

var d = DateTime.Parse("2012-08-24T04:09:17Z");
Console.WriteLine (d.ToString("G"), CultureInfo.InvariantCulture);

请注意'常规日期/时间模式(长时间)'。 .net是特定于文化的。来自msdn:

6/15/2009 1:45:30 PM -> 6/15/2009 1:45 PM (en-US)
6/15/2009 1:45:30 PM -> 15/06/2009 13:45 (es-ES)
6/15/2009 1:45:30 PM -> 2009/6/15 13:45 (zh-CN)

答案 5 :(得分:1)

尝试此操作将通用日期时间转换为本地时间

    var date = DateTime.ParseExact("2012-08-25T06:57:57Z","yyyy-MM-ddTHH:mm:ssZ",System.Globalization.CultureInfo.CurrentCulture);
var newformat = date.ToString("MM/dd/yyyy HH:mm:ss tt");

答案 6 :(得分:0)

尝试将日期转换为像这样的字符串

date.ToString("yyyy-MM-dd HH':'mm':'ss")

此处日期是存在日期的变量

或试试这个

string timeString = "11/12/2009 13:30:00.000";
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime dateVal = DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss.fff", culture);

这些链接也可能对您有所帮助。

DateTime.ToString() Patterns

String Format for DateTime [C#]

答案 7 :(得分:0)

你可以简单地使用:)

DateTime dt = Convert.ToDateTime(“2012-06-28T08:26:57Z”);