如何从';转换日期字符串;年月日h:mm:ss tt';至';yyyy-dd-mmTHH:mm:ss';?C#
我有一个字符串看起来像如何从';转换日期字符串;年月日h:mm:ss tt';至';yyyy-dd-mmTHH:mm:ss';?C#,c#,date,parsing,datetime,time,C#,Date,Parsing,Datetime,Time,我有一个字符串看起来像5/27/2015 4:49:54 AM 我需要它的格式:2015-27-05T04:49:54+08:00 我尝试这样转换它,但它抛出了一个错误: var convertedDate = DateTime.ParseExact(originalDate, "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK", new CultureInfo("en-US", true)); 我也尝试过这
5/27/2015 4:49:54 AM
我需要它的格式:2015-27-05T04:49:54+08:00
我尝试这样转换它,但它抛出了一个错误:
var convertedDate = DateTime.ParseExact(originalDate, "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",
new CultureInfo("en-US", true));
我也尝试过这样转换它,但它似乎没有任何作用,convertedDate最终与originalDate相同:
var convertedDate = String.Format("{0:u}", originalDate);
请尝试
convertedDate.ToString(“yyyy-MM-ddThh:MM:sszzz”)
,本地计算机上的日期和时间设置可能会影响输出的格式化方式,因此您不能总是依赖内置的格式化字符串 首先将原始字符串
解析为日期时间
。然后将DateTime
格式化为所需格式的字符串
var originalDate = "5/27/2015 4:49:54 AM";
var result = DateTime.ParseExact(originalDate, "M/d/yyyy h:mm:ss tt", CultureInfo.CurrentCulture)
.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'sszzzz");
Console.WriteLine(result);
输出
2015-05-27T04:49:54-04:00
请注意,您获得的时区偏移量将取决于运行此操作的计算机的区域性,因为它未在原始字符串中指定。您需要先解析,然后将所需的格式字符串与ToString
translate一起使用
试试这个:
string input = "5/27/2015 4:49:54 AM";
DateTime originalDate = DateTime.Parse(input);
string output = originalDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK");
如果需要,可以将DateTime.Parse
与DateTime.ParseExact
交换DateTime.Parse
将尝试使用您的系统区域性进行解析。如果你需要/想要,你可以更具体一些
另外,请记住,格式字符串中的f
会创建一个强制小数。要匹配指定的输出,应使用F
或省略
要解析“5/27/2015 4:49:54 AM”
您应该使用以下格式字符串:“M/d/yyyy h:mm:ss tt”
然后,您可以使用DateTime.ToString
和所需的格式字符串,该字符串似乎是“yyyy-dd-MM'T'hh:MM:sszzz”
以获得2015-27-05T04:49:54+08:00
作为输出:
string result = convertedDate.ToString("yyyy-dd-MM'T'hh:mm:sszzz"); // zzz to get UTC offset
请参阅:尝试此代码
string inputString = "05/27/2015 04:49:54 AM";
DateTime dt = DateTime.ParseExact(inputString, "M/dd/yyyy H:mm:ss tt",
System.Globalization.CultureInfo.InvariantCulture);
string outputString = dt.ToString("yyyy-MM-ddTHH:mm:sszzz");
输出字符串将返回值为“2015-05-27T04:49:54+08:00”。您有一个字符串“5/27/2015 4:49:54 AM”
并使用“yyyyy”-“MM”-“dd'T'HH':“MM”:“ss.fffffff k”
作为ParseExact
中的格式字符串?当然,这是行不通的。你需要提供你想要解析的格式,而不是。这给了你一个约会时间。但是,似乎需要添加偏移量,因此该类型可能更有用。或者可能更容易使用。@TimSchmelter说“那当然不行”一点帮助都没有。可能是重复的
string inputString = "05/27/2015 04:49:54 AM";
DateTime dt = DateTime.ParseExact(inputString, "M/dd/yyyy H:mm:ss tt",
System.Globalization.CultureInfo.InvariantCulture);
string outputString = dt.ToString("yyyy-MM-ddTHH:mm:sszzz");