私は、NOW()を使用して時刻を設定するmySQLデータベースにユーザー間で送信されたデータの時刻を格納するサーバーを持っています。 私は受信者の現地時間に時間を変換しようとしていますが、多くの運がありません(私は保存する前に時間を変換しますが、送信側ではなく受信側にとってローカルになるようにします)。 日付を文字列としてアプリケーションに返され、次のように私はそれを調整しようとしています:iOS - mySQLサーバーから受け取った日付をユーザーにローカル時刻に変換する
NSString *string1 = [[receivedMessages objectAtIndex:thisRow]objectAtIndex:2];
NSDate *messageDate;
NSCalendar* cal = NSCalendar.currentCalendar;
NSTimeZone* tz = cal.timeZone;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM dd yyyy hh:mma"];
[formatter setTimeZone:tz];
messageDate = [formatter dateFromString:string1];
それは一種の日付をフォーマットではなく、正しくありません。などのアプリで受信された日付:Xcodeのは日付が最初の場所でに属している時間帯アウトどのように動作するか私は思ったんだけど
2012-04-05 04:49:00 +0000
:
April 5 2012 5:49AM
がに変換されますか?
実は、私はちょうどそれが再び
NSCalendar* cal = NSCalendar.currentCalendar;
NSTimeZone* tz = cal.timeZone;
の代わりに
NSTimeZone *pst = [NSTimeZone timeZoneWithAbbreviation:@"PST"];
を使用してテストしてみた、それはまだ私に2012-04-05四時49分00秒のような時間を与えます+ 0000。
誰もが考えている?
多くのおかげ
私は完全にあなたに従っているかどうかはわかりません。現時点でどのように動作しているかを説明する方が簡単かもしれません。ユーザーがデータを送信すると、記録された時間はサーバー上の時間です - GMTです。しかし、送付者がニューヨークにいて、受取人が東京にいる場合、GMTは受取人には役に立たず、NYCでの時間もありません。ですから、GMT時間をユーザの現地時間に変換する必要がありますが、localizedStringFromDateがどのようにそれを行うのかわかりません。限り、私はそれが日付の構造をフォーマットするためだけであることを伝えることができます - その値を変更しないでください?または、私はそれをどのように使用するのか誤解しましたか? – TheBestBigAl
サーバーから日付を取得するとき、その形式は何ですか?文字列ISO 8601: '2012-02-28T09:13:23Z'、正規文字列:' April 5 2012 12:34 AM'、POSIX: '123582342'? – Stephen
これはちょうどこのように見えます:2012-04-05 16:14:00、IOS 8601バージョンに最も似ていますが、そこにはTやZはありません。 – TheBestBigAl