問題タブ [dateformatter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
164 参照

swift - ObjectMapper の DateFormatterTransform でカスタム タイム ゾーンを設定する

私は ObjectMapper の時間文字列解析に比較的慣れておらず、大きな問題に直面しています。ローカルで Date オブジェクトに解析することになっている "yyyy-MM-dd'T'HH:mm:ss.SSZ" 形式の時刻文字列を送信するサーバーがあります。私のサーバーはローカルタイムゾーン、つまりGMT + 8で日付を送信しているので、サーバーから「2018-08-23T15:02:44.000Z」を受信したとしましょう。これをレルムファイルに正確に保存する必要があります。変換に次のコードを使用しています。

しかし問題は、レルムに保存されている日付オブジェクトが 2018-08-23 11:02:44 PM であることです。DateFormatterTransform は GMT ゾーンの日付文字列を受け入れるため、ローカル タイム ゾーン、つまり GMT+8 に変換していると思います。とにかく、DateFormatterTransform のタイム ゾーンを手動で設定して、タイム シフトが発生しないようにすることはできますか? データベースは非常に大きく、すでにすべての日付がローカル タイム ゾーンで保存されているため、この時点でサーバーを変更することはできません。

この問題を解決する方法を提案してください。ありがとう

0 投票する
1 に答える
881 参照

ios - 日付形式 iso-8601 をカスタム形式に変更します

JSONDecoder() を使用して解析されている json ファイルがあります。ただし、日付型の変数タイムスタンプを iso-8601 形式 ("yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX") で受け取りますが、私の見解では、それをカスタム形式で表示したいと考えています。 「dd/mm/yy HH:mm:ss」。

私は次のコードを書きましたが、タイムスタンプに nil を取得し、さらに、タイムスタンプが iso-8601 形式の場合、「日付」は使用する正しい型ではないと想定しています。

エラー json: typeMismatch(Swift.Double, Swift.DecodingError.Context(codingPath: [_JSONKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "timestamp", intValue: nil)], debugDescription: "Expected Double をデコードしますが、代わりに文字列/データが見つかりました。"、基本的なエラー: nil))

スウィフト4