SwiftのDateIntervalのタイムゾーンが正しくありません

デニストリアスノフ

このデータが作成された日付を基準にして、いくつかのデータを辞書としてアプリに保存したいと思います。次のようになります。

// hours
[ 17:00 - 18:00 : 34.5,
  18:00 - 19:00 : 41.2,
... ]

// days
[ 2017-11-19 - 2017-11-20 : 37.9,
  2017-11-20 - 2017-11-21 : 31.1,
... ]

DateInterval構造は、この辞書でキーのための完璧な候補であると思われます。しかし、いくつかの基本的なテストを実行したところ、Date()initで作成された日付は特定の時点の正しい情報を表しているのに対し、DateIntervalfrom構造はCalendar.currentデフォルトでタイムゾーンとしてGMT + 0になっているように見えるため、次の出力が得られます。

let date = Date() //outputs "Nov 20, 2017 at 10:32 PM"
let hourInterval = Calendar.current.dateInterval(of: .hour, for: date)
//outputs: 2017-11-20 20:00:00 +0000 to 2017-11-20 21:00:00 +0000

つまり、私の/ユーザーのタイムゾーンから2時間ずれています。DateIntervalタイムゾーンがずれないように使用する正しい方法は何ですか?

デビッドS。

iOSの日付の内部構造は常にGMTです。あなたが見ているのは文字列表現です。内部の日付はまだ互いに一貫しています。この遊び場コードを検討してください。

//: Playground - noun: a place where people can play

import UIKit
import XCTest
import PlaygroundSupport


let fourHours:Double = -1 * 60 * 60 * 4
var newDate = Date()
let oldDate = Date(timeInterval: fourHours, since: newDate)
let interval = DateInterval(start: oldDate, end: newDate)

let hourInterval = Calendar.current.dateInterval(of: .hour, for: newDate)

出力は次のようになります。

結果

日付は現地時間(EST)として表示されますが、印刷可能な表現はGMTです。ただし、時間はオフセットされているため、「2017年11月20日午後4時14分EST」は「2017-11-20 21:14:09 + 0000」と同等です。いつでもDateIntervalから元の日付オブジェクトを取得できます。

hourInterval?.start
hourInterval?.end

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

laravelcreated_at保存時のタイムゾーンが正しくありません

分類Dev

webspherejreのタイムゾーンが正しくありません

分類Dev

異なるタイムゾーンの昨日の日付が正しくありません

分類Dev

odooログファイルのタイムゾーンが正しくありません

分類Dev

moment.jsと時空のタイムゾーン調整が正しくありません

分類Dev

PythonDjangoタイムゾーン変換「米国/太平洋」タイムゾーンの時刻が正しくありません

分類Dev

Java8タイムライブラリが正しくBSTのタイムゾーンを解釈することはありません

分類Dev

PHPが設定したデフォルトのタイムゾーンが正確ではありません

分類Dev

カーボンタイムゾーン機能が正しくありません

分類Dev

date_default_timezone_setを使用すると、オーストラリアのDSTタイムゾーンの省略形が正しくありません

分類Dev

ValueError:Djangoでmanage.pyファイルを移行する際のタイムゾーン設定が正しくありません

分類Dev

タイムゾーンはPythonでは使用できませんが、システムのタイムゾーンは正しく設定されています

分類Dev

通知センターのアイコンが正しくありません

分類Dev

マイクロソフトのタイムゾーンがありません

分類Dev

ブーストログのタイムスタンプ形式が正しくありません

分類Dev

quickbloxベース4.1.2のタイムスタンプが正しくありません

分類Dev

swift3のUITextfieldサブクラス内のフレームサイズが正しくありません

分類Dev

Django + Gunicornのログのタイムスタンプが正しくありません

分類Dev

データフレームの次元数が正しくありません

分類Dev

PyQTボタンのQGridLayoutのサイズが正しくありません

分類Dev

カスタムインデックスの場合、Javascriptの結合が正しくありません

分類Dev

HTMLのデータの形式が正しくありません

分類Dev

php 5.6.x以降のタイムゾーンは正確ではありませんか?

分類Dev

Jesttest.eachのタイプが正しくありません

分類Dev

スクロール時にrecycleviewアイテムのデータが正しくありません

分類Dev

MVCJavascriptボタンの値が正しくありません

分類Dev

イベントの終了日が正しくありません

分類Dev

モジュールのインポートが正しくありません

分類Dev

preg_match_allのパターンが正しくありません

Related 関連記事

  1. 1

    laravelcreated_at保存時のタイムゾーンが正しくありません

  2. 2

    webspherejreのタイムゾーンが正しくありません

  3. 3

    異なるタイムゾーンの昨日の日付が正しくありません

  4. 4

    odooログファイルのタイムゾーンが正しくありません

  5. 5

    moment.jsと時空のタイムゾーン調整が正しくありません

  6. 6

    PythonDjangoタイムゾーン変換「米国/太平洋」タイムゾーンの時刻が正しくありません

  7. 7

    Java8タイムライブラリが正しくBSTのタイムゾーンを解釈することはありません

  8. 8

    PHPが設定したデフォルトのタイムゾーンが正確ではありません

  9. 9

    カーボンタイムゾーン機能が正しくありません

  10. 10

    date_default_timezone_setを使用すると、オーストラリアのDSTタイムゾーンの省略形が正しくありません

  11. 11

    ValueError:Djangoでmanage.pyファイルを移行する際のタイムゾーン設定が正しくありません

  12. 12

    タイムゾーンはPythonでは使用できませんが、システムのタイムゾーンは正しく設定されています

  13. 13

    通知センターのアイコンが正しくありません

  14. 14

    マイクロソフトのタイムゾーンがありません

  15. 15

    ブーストログのタイムスタンプ形式が正しくありません

  16. 16

    quickbloxベース4.1.2のタイムスタンプが正しくありません

  17. 17

    swift3のUITextfieldサブクラス内のフレームサイズが正しくありません

  18. 18

    Django + Gunicornのログのタイムスタンプが正しくありません

  19. 19

    データフレームの次元数が正しくありません

  20. 20

    PyQTボタンのQGridLayoutのサイズが正しくありません

  21. 21

    カスタムインデックスの場合、Javascriptの結合が正しくありません

  22. 22

    HTMLのデータの形式が正しくありません

  23. 23

    php 5.6.x以降のタイムゾーンは正確ではありませんか?

  24. 24

    Jesttest.eachのタイプが正しくありません

  25. 25

    スクロール時にrecycleviewアイテムのデータが正しくありません

  26. 26

    MVCJavascriptボタンの値が正しくありません

  27. 27

    イベントの終了日が正しくありません

  28. 28

    モジュールのインポートが正しくありません

  29. 29

    preg_match_allのパターンが正しくありません

ホットタグ

アーカイブ