1

私はこの正確な質問に対する答えを探しています: Objective-CのみでJSでFacebook/Twitterの日付を(JSONフィードから)フォーマットする方法。

これを行うための推奨される方法はありますか?

Twitter から返される日付は次のようになります: Wed Oct 17 21:22:27 +0000 2012 そして FB からは次のようになります: 2012-10-18T11:21:30+0000

Unixタイムスタンプが含まれていないのは非常に奇妙です(そして非常に迷惑です).

4

1 に答える 1

4

日付文字列の解析は非常によくある質問です。これについては既に回答があります。とにかく...

日付形式が 2012-10-18T11:21:30+0000 (ほぼ ISO8601) で、オフセットが常に +0000 (つまり UTC) の場合、以下を使用して適切な日付オブジェクトを作成できます。

function isoStringToDate(s) {
  var b = s.split(/[-t:+]/ig);
  return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));
}

その UTC 時間に設定されたローカル日付オブジェクトを返します。これは、適切なタイムゾーンに設定されているユーザーのシステムに依存することに注意してください。

Facebook 形式 (Wed Oct 17 21:22:27 +0000 2012) 形式も同様に変換できます。

function fbStringToDate(s) {
  var b = s.split(/[: ]/g);
  var m = {jan:0, feb:1, mar:2, apr:3, may:4, jun:5, jul:6,
           aug:7, sep:8, oct:9, nov:10, dec:11};

  return new Date(Date.UTC(b[7], m[b[1].toLowerCase()], b[2], b[3], b[4], b[5]));
}

ここでも、オフセットが常に +0000 (UTC) であると仮定します。他のオフセットが必要な場合は、作成された日付オブジェクトを返す前に適用できます。

于 2012-10-30T05:24:29.470 に答える