gpt4 book ai didi

c# - 将日期时间转换为特定时区但采用特定格式 c#

转载 作者:行者123 更新时间:2023-12-04 13:27:04 25 4
gpt4 key购买 nike

我不完全确定这是否可能,我已经尝试了很多东西,但没有编写算法。
我有一个 datetime 类型的变量,我想将其转换为特定时区和特定格式。让我举个例子吧

todayCloseLine -> UTC time -> "2021-05-25 18:36:00"


closeline_local -> converting todayCloseLine to GMT Standard Time -> "2021-05-25 19:36:00"


我能够转换到给定的时区,所以没有问题。我想要的是 closeline_local 的这种格式

2021-05-25T18:36:00.0000000+01:00


我试过的内容如下(除其他外):
  • 在 todayCloseLine 上尝试了 ToLocalTime().ToString("o") 但为了让它工作,我的机器应该在特定的时区。这不是一个选项

  • 现在,我可以做的是编写一个算法如下:
  • 获取时间跨度的差异取决于哪个更大
  • 得到符号,+ 或 - 取决于哪个更大
  • 然后将 todayCloseLine 转换为 ToString("o") 并附加符号和时间跨度以获得最终输出

  • 但我想避免这种情况,最好使用内置方法或其他方法来获得这种转换
    请如果你能帮忙。提前致谢。
    编辑
    这些是我所做的尝试。我在这尝试了排列组合,但没有运气
    DateTime todayCloseLine1 = DateTime.SpecifyKind(Convert.ToDateTime("25-May-2021 18:36"), DateTimeKind.Utc);
    var closeline_local1 = DateTime.SpecifyKind(TimeZoneInfo.ConvertTime(
    todayCloseLine1,
    TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")), DateTimeKind.Local);
    var dt1 = closeline_local1.ToLocalTime().ToString("o");

    var dt2 = closeline_local1.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffzzz");

    OUTPUT for both dt1 and dt2 -
    2021-05-25T19:36:00.0000000+05:30 --> machine date IST
    2021-05-25T19:36:00.0000000+01:00 --> machine date LONDON
    希望这可以帮助

    最佳答案

    使用 DateTimeOffset以所需格式格式化字符串

    DateTime close_line_UTC = DateTime.SpecifyKind(Convert.ToDateTime("25-May-2021 18:36"), DateTimeKind.Utc);
    var myTimeZone = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
    var closeline_local = TimeZoneInfo.ConvertTimeFromUtc(close_line_UTC, myTimeZone);
    TimeSpan utcOffsett = myTimeZone.GetUtcOffset(closeline_local);
    DateTimeOffset dateTimeOffset = new DateTimeOffset(closeline_local, utcOffsett);
    var closeline_local_formatted = dateTimeOffset.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffzzz");
    引用文献
  • DateTime.ToString Method
  • DateTimeOffset.ToString Method
  • 关于c# - 将日期时间转换为特定时区但采用特定格式 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67824289/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com