C# 带时区C的时间戳格式#

C# 带时区C的时间戳格式#,c#,.net,C#,.net,对于以下代码,这将是输出(2020-06-05T23:02:24.554+05:30)。我希望时区不带“:”in(+05:30),并期望类似(+0530)。如何通过日期时间格式实现这一点?我可以用字符串操作删除冒号,但datetime格式本身应该有一些选项,如果有人建议的话,这将非常好 string date = String.Format("{0:s}.{0:fff}{0:zzz}", DateTime.Now); 没有这样做的标准方法,但您可以编写一个自定义方法,如不进行测试,该方法需要时

对于以下代码,这将是输出(2020-06-05T23:02:24.554+05:30)。我希望时区不带“:”in(+05:30),并期望类似(+0530)。如何通过日期时间格式实现这一点?我可以用字符串操作删除冒号,但datetime格式本身应该有一些选项,如果有人建议的话,这将非常好

string date = String.Format("{0:s}.{0:fff}{0:zzz}", DateTime.Now);

没有这样做的标准方法,但您可以编写一个自定义方法,如不进行测试,该方法需要时间并按要求返回utc:

public static string GetUtc(DateTime dateTime)
{
    return $"{dateTime:zzz}".Replace(":", "");
}
叫它

GetUtc(DateTime.Now);
这将返回+0530


顺便说一句,我也参考了一些阅读资料。

您可以使用DateTimeOffset而不是DateTime来获取所需内容

        var now = DateTimeOffset.Now;

        string date = string.Format("{0}{1}{2}", now.ToString("s.fff"), now.Offset.Ticks < 0 ? "-" : "+", now.Offset.ToString("hhmm"));
var now=DateTimeOffset.now;
string date=string.Format(“{0}{1}{2}”、now.ToString(“s.fff”)、now.Offset.Ticks<0?”-“:“+”、now.Offset.ToString(“hhmm”);

不使用字符串函数的“要求”应该解决什么问题?如果这是为了避免代码混乱,您只需在DateTime类型上创建一个扩展方法,这样就可以执行
DateTime.Now.MyFormatLogic()@OptionalOption是的,很好。我编辑时考虑到了这一点。