2012-01-11 17 views
2

私は次の二つの日付に適応することができ、日付形式を見つける必要があります:あなたが見ることができるように変更可能なデータに適合する日付形式を定義することは可能ですか?

  1. 2012-01-22T14:27:31.176+0000
  2. 2012-01-22T14:27:31+0000

を、唯一の違いは、日付2が持っていないということです分数秒。

2つの日付の形式は次のようになります.Sを省略第一方と

  1. yyyy-MM-dd'T'HH:mm:ss.SZ
  2. yyyy-MM-dd'T'HH:mm:ssZ

.Sはオプションですか?または、2つの異なる形式を使用し続ける必要がありますか?

問題は、私はAPI呼び出しから日付を取得していることにあります。時には、秒単位で表示される場合もあれば、表示されない場合もあります。

私は、小数点の存在を検出してそれに応じて2つの異なる日付形式を使用することができたと思いますが、私はよりクリーンなソリューションを探していました。

ありがとうございます!

答えて

0

このケースで@JustSidによって提案された「寛大な」プロパティは機能しませんでした。

「クリーナー」の解決策が見つからないため、私は小数点の存在を検出し、それに応じて2つの異なる日付形式を使用していた最初のものに戻りました。

NSRange textRange =[targetDate rangeOfString:@"."]; 

if(textRange.location == NSNotFound) { 
    format = @"yyyy-MM-dd'T'HH:mm:ssZ"; 
} else { 
    format = @"yyyy-MM-dd'T'HH:mm:ss.SZ"; 
} 
0

まず、データの実際の長さを調べることができます。きれいではありませんが、動作するはずです

0

文字列の長さをテストし、長さに応じて2つの異なる日付フォーマッタのいずれかを使用できますか?

0

私は2つの日付フォーマッタを持ち、日付の文字列に小数点以下があるかどうかに応じて、使用する日付フォーマッタを選択します。

私はまた、あなただけの小数秒なしのあなたの日付だけで終わりに0.00と表示していました、小数秒でフォーマット文字列を使用することができ

に小数点以下はオプションになるだろうフォーマット文字列があると思ういけませんより一貫して見えるかもしれませんか?

1

NSDateFormatterのプロパティlenientYESに設定すると、NSDateFormatterは入力文字列を推測できます。しかし、これはあなたにいくつかの偽陽性を与えるかもしれないので、これをテストすべきです。

+0

これはわかりませんでしたが、役に立つかもしれません。私はそれを試してみましょう、ありがとう! – flavianatill

関連する問題