0

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

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

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

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

8 回答 8

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

于 2012-08-25T06:54:18.007 回答
2

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

“T”是占位符。这不代表任何意思。

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

于 2012-08-25T06:50:26.007 回答
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);
于 2012-08-25T06:49:26.823 回答
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");
于 2012-08-25T06:50:08.053 回答
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)
于 2012-08-25T06:50:08.817 回答
1

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

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

这里 date 是一个变量,其中存在日期

或试试这个

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() 模式

日期时间的字符串格式 [C#]

于 2012-08-25T06:50:12.460 回答
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");
于 2012-08-25T06:59:48.057 回答
0

你可以简单地使用:)

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

于 2012-08-25T07:08:41.167 回答