gpt4 book ai didi

c# - 使用野田时间获取给定偏移量(以分钟为单位)的时区列表

转载 作者:行者123 更新时间:2023-11-30 20:25:09 26 4
gpt4 key购买 nike

我正在尝试使用 Noda Time 设计以下时区解决方案:

用户将使用移动应用程序或网络应用程序登录系统。登录时,将使用 UTC 偏移量(假设 x 分钟)作为参数来调用 Web API。

现在,如果偏移量(x 分钟)与数据库中保存的偏移量(和时区)不同,则将向用户显示距 UTC x 分钟的时区列表,以便他们可以从中选择一个。然后,所选时区和相应的偏移量(x 分钟)将作为用户的最新时区保存在数据库中。

如何使用野田时间获取距 UTC x 分钟的时区列表?

例如,如果用户距 UTC +330 分钟,则用户将收到以下提示:

We have found that you're 5 hrs 30 minutes ahead of GMT. Please select your current timezone: "Asia/Colombo", "Asia/Kolkata"

最佳答案

你可以这样做:

TimeZoneInfo.GetSystemTimeZones()
.Where(x => x.GetUtcOffset(DateTime.Now).TotalMinutes == 330)

现在您已经有了时区集合!您可以根据您的情况将 DateTime.Now 替换为其他日期或 DateTimeOffset

在 Noda Time 中,您可以执行以下操作:

using NodaTime;
using NodaTime.TimeZones;

TzdbDateTimeZoneSource.Default.GetIds()
.Select(x => TzdbDateTimeZoneSource.Default.ForId(x))
.Where(x =>
x.GetUtcOffset(SystemClock.Instance.GetCurrentInstant()).ToTimeSpan().TotalMinutes == 330)

关于c# - 使用野田时间获取给定偏移量(以分钟为单位)的时区列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52125602/

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