将 GMT 日期格式转换为基于区域设置的格式

发布于 2024-10-30 15:58:20 字数 106 浏览 0 评论 0原文

我们如何将 GMT 格式的 NSDate 对象转换为当前区域/设备设置的日期格式?

例如,如果设备位于美国且位于 PDT 时区,那么我想将 GMT 时间转换为其等效的 PDT 时间。

How can we convert NSDate object in GMT format to the date format with current locale/device settings?

For example if a device is in US and in PDT time zone then I want to convert GMT time to its equivalent PDT time.

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

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

发布评论

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

评论(2

捂风挽笑 2024-11-06 15:58:20

严格来说,您不能将 NSDate 转换为另一个时区,因为 NSDate 没有任何时区的概念。 NSDate 对象仅表示(绝对)时间中的单个点,而与时区无关。

每当你想向用户显示日期时,你应该创建一个NSDateFormatter。默认情况下,它会自动显示用户所在时区的时间。您可以使用 -[NSDateFormatter setTimeZone:] 覆盖它。

Strictly, you cannot convert an NSDate to another time zone because NSDate has no conception of time zones whatsoever. An NSDate object simply represents a single point in (absolute) time, regardless of time zone.

Whenever you want to display a date to the user, you should create an NSDateFormatter. By default, it automatically displays time in the user's time zone. You can override this with -[NSDateFormatter setTimeZone:].

初懵 2024-11-06 15:58:20

只需使用 NSDate 方法 descriptionWithCalendarFormat:timeZone:locale: 传入适当的时区即可。如果您仅使用 description 方法,您将获得当前时区的日期/时间(因此,如果设备设置为 PDT,则时间将采用 PDT)。

Just use the NSDate method descriptionWithCalendarFormat:timeZone:locale: passing in the appropriate timezone. If you just use the description method you get the date/time in the current timezone (so if the device is set to PDT the time will be in PDT).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文