C# 在C语言中转换日期时间格式#

C# 在C语言中转换日期时间格式#,c#,datetime,C#,Datetime,如何从Web服务转换此日期时间格式。日期时间值为:“时间戳”:“2014-04-18T14:45:00+02:00” 我不想将其转换为:dd.mm.YYYY hh.mm.ss使用DateTime.ParseExact(string,string,IFormatProvider)或DateTime.TryParseExact(string,string,IFormatProvider,DateTimeStyles,out DateTime) 使用DateTime.ParseExact(字符串

如何从Web服务转换此日期时间格式。日期时间值为:“时间戳”:“2014-04-18T14:45:00+02:00”
我不想将其转换为:dd.mm.YYYY hh.mm.ss

使用
DateTime.ParseExact(string,string,IFormatProvider)
DateTime.TryParseExact(string,string,IFormatProvider,DateTimeStyles,out DateTime


使用
DateTime.ParseExact(字符串,字符串,IFormatProvider)
DateTime.TryParseExact(字符串,字符串,IFormatProvider,datetimestyle,out DateTime

您需要使用
“yyyy-MM-dd'T'HH:MM:ssK”
格式,并使用以下方法:

string s = "2014-04-18T14:45:00+02:00";
var date = DateTime.ParseExact(s, "yyyy-MM-dd'T'HH:mm:ssK",
                                   CultureInfo.InvariantCulture);
看看

然后,您可以使用方法获得
DateTime
的字符串表示形式
DateTime
没有固有的格式,它只有一个值。可以获取用于格式化的字符串表示形式

date.ToString("dd.MM.yyyy HH.mm.ss", CultureInfo.InvariantCulture);
//18.04.2014 03.45.00
这里有一个

记住,
mm
代表分钟,
mm
代表月。而
hh
表示12小时制,即
01
12
。但是
HH
是24小时制,从
00
23

这就是为什么不能使用
hh
说明符解析
14
。我假设您的实际表示格式是
dd.MM.yyy HH.MM.ss

编辑:编辑后,您可以使用
“MM/dd/yyyy HH:MM:ss”
格式,如:

string s = "04/18/2014 14:45:00";
var date = DateTime.ParseExact(s, "MM/dd/yyyy HH:mm:ss",
                                   CultureInfo.InvariantCulture);
Console.WriteLine(date); // 18/04/2014 14:45:00
您需要使用以下方法使用
“yyyy-MM-dd'T'HH:MM:ssK”
格式:

string s = "2014-04-18T14:45:00+02:00";
var date = DateTime.ParseExact(s, "yyyy-MM-dd'T'HH:mm:ssK",
                                   CultureInfo.InvariantCulture);
看看

然后,您可以使用方法获得
DateTime
的字符串表示形式
DateTime
没有固有的格式,它只有一个值。可以获取用于格式化的字符串表示形式

date.ToString("dd.MM.yyyy HH.mm.ss", CultureInfo.InvariantCulture);
//18.04.2014 03.45.00
这里有一个

记住,
mm
代表分钟,
mm
代表月。而
hh
表示12小时制,即
01
12
。但是
HH
是24小时制,从
00
23

这就是为什么不能使用
hh
说明符解析
14
。我假设您的实际表示格式是
dd.MM.yyy HH.MM.ss

编辑:编辑后,您可以使用
“MM/dd/yyyy HH:MM:ss”
格式,如:

string s = "04/18/2014 14:45:00";
var date = DateTime.ParseExact(s, "MM/dd/yyyy HH:mm:ss",
                                   CultureInfo.InvariantCulture);
Console.WriteLine(date); // 18/04/2014 14:45:00

使用正则表达式,可以执行以下操作:

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, @"(\d{4})-(\d{2})-(\d{2})\w{1}(\d{2}):(\d{2}):(\d{2})\+\d{2}:\d{2}", "$3.$2.$1 $4.$5.$6", RegexOptions.IgnoreCase);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
//2014年4月18日14.45.00


使用正则表达式,可以执行以下操作:

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, @"(\d{4})-(\d{2})-(\d{2})\w{1}(\d{2}):(\d{2}):(\d{2})\+\d{2}:\d{2}", "$3.$2.$1 $4.$5.$6", RegexOptions.IgnoreCase);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
//2014年4月18日14.45.00


@SonerGönül我同意,有库可供使用,但这也是一个有效的解决方案。@SonerGönül我同意,有库可供使用,但这也是一个有效的解决方案。我尝试了此操作,但调试器出现错误:字符串未被识别为有效的日期时间。如果我调试字符串变量s,则会显示:test=“04/18/2014 14:45:00”@用户2025830,但字符串格式不匹配。无论如何,我更新了我的答案。请看一看。我尝试了此操作,但从调试器中得到一个错误:字符串未被识别为有效的日期时间。如果我调试字符串变量s,则会出现:test=“04/18/2014 14:45:00”@user2025830,但您的字符串格式不匹配。无论如何,我更新了我的答案。看一看。