C# 日期时间 - RFC 3339 格式

发布于 2024-10-17 10:49:57 字数 719 浏览 9 评论 0原文

我正在尝试生成符合 RFC 3339 的日期字符串(即“2008-03-19T00:00:00.0000000-04:00”),但是我似乎遇到了偏移量无效的问题。我正在使用以下内容:

private string GetDate(DateTime DateTime)
{
    DateTime UtcDateTime = TimeZoneInfo.ConvertTimeToUtc(DateTime);
    return XmlConvert.ToString(UtcDateTime, XmlDateTimeSerializationMode.Utc);
}

但这会返回一个值,例如 "1977-02-03T05:00:00Z"

我也尝试使用特定格式,例如

 utcDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK", DateTimeFormatInfo.InvariantInfo); 

But ,结果相同。


请参阅此现有参考:如何解析 DateTime 并将其转换为 RFC 3339 日期时间格式?

I am trying to generate RFC 3339 compliant date strings (ie. '2008-03-19T00:00:00.0000000-04:00') however I seem to be having an issue with the offset being invalid. I am using the following:

private string GetDate(DateTime DateTime)
{
    DateTime UtcDateTime = TimeZoneInfo.ConvertTimeToUtc(DateTime);
    return XmlConvert.ToString(UtcDateTime, XmlDateTimeSerializationMode.Utc);
}

but this returns me with a value such as "1977-02-03T05:00:00Z"

I have also attempted using a specific format such as

 utcDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK", DateTimeFormatInfo.InvariantInfo); 

But with the same results.


See this existing reference: How do I parse and convert DateTime's to the RFC 3339 date-time format?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜还是长夜 2024-10-24 10:49:57

您要将数据转换为 UTC,因此其时区与 UTC 的偏移量为 0:00。 RFC 为 UTC 日期定义了一种方便的表示法,即后缀 Z。所以这对我来说看起来像是一个有效的数据字符串。

You are converting your data to UTC, so its timezone offset to UTC is 0:00. The RFC defines a convenient notation for UTC dates, the suffix Z. So this looks like a valid data-string to me.

洒一地阳光 2024-10-24 10:49:57

我在 .NET 6 中使用了这种方法:

public static class DateTimeExtensions
{
     public static string ToRFC3339(this DateTime date)
     {
         return date.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffK");
     }
}

I used this approach for .NET 6:

public static class DateTimeExtensions
{
     public static string ToRFC3339(this DateTime date)
     {
         return date.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffK");
     }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文