Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的Utcoffset格式# var utcOffset=TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now); Console.WriteLine(((utcOffset_C#_Asp.net Mvc_Datetime Format - Fatal编程技术网

C# C语言中的Utcoffset格式# var utcOffset=TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now); Console.WriteLine(((utcOffset

C# C语言中的Utcoffset格式# var utcOffset=TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now); Console.WriteLine(((utcOffset,c#,asp.net-mvc,datetime-format,C#,Asp.net Mvc,Datetime Format,上面的代码运行良好。但是我需要显示偏移量,比如+05:00。有没有办法实现这种格式?而不是使用时区从日期时间查找时区。现在,您可以使用日期时间偏移量。现在使用zzz格式字符串和CultureInfo.InvariantCulture来实现这一点: var utcOffset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now); Console.WriteLine(((utcOffset < TimeSpan.Zero) ? "

上面的代码运行良好。但是我需要显示偏移量,比如+05:00。有没有办法实现这种格式?

而不是使用
时区
日期时间查找时区。现在
,您可以使用
日期时间偏移量。现在
使用
zzz
格式字符串和
CultureInfo.InvariantCulture
来实现这一点:

var utcOffset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now);
Console.WriteLine(((utcOffset < TimeSpan.Zero) ? "-" : "+") + utcOffset.ToString("hhmm"));

如果您只需要该格式的偏移量,可以使用
“zzz”
而不是
“HHmmzzzz”

从以下位置:

自定义TimeSpan格式说明符不包括占位符分隔符符号,例如将天与小时、小时与分钟或秒与分数秒分隔的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中

因此,您必须用
”或反斜杠来转义上一页中未列出的格式字符串中的字符,以便:

Console.WriteLine(DateTimeOffset.Now.ToString("HHmmzzz", System.Globalization.CultureInfo.InvariantCulture));
// outputs 1255+02:00
但是,如果您格式化的是
DateTimeOffset
,而不是
TimeSpan
,您实际上不必自己进行格式化。如果您这样做,您也不需要所有的“获取UTC偏移”混乱

您只需要:


您不需要所有的
时区
内容。

只需使用
hh':'mm
作为格式字符串?另外,使用
TimeZoneInfo
而不是
TimeZone
。比如,utcOffset.ToString(“hh:mm”);再读一遍我的评论。我没有说
hh:mm
。比如Console.WriteLine(((utcOffset.BaseUtcOffsetutcOffset.ToString(“hh':'mm”)…您能澄清一下您的答案吗?我得到的输出和你的不一样。它说输入字符串的格式不正确。谢谢。对不起,我错过了一个
。现在
。你能再试一次吗?
utcOffset.ToString("hh':'mm")
DateTimeOffset.Now.ToString("zzz")