iOS-NSDateFormatter dateFromStringは、1つの場合にのみnilを返します

木MV

日付形式("dd-MM-yyyy")のいくつかの値をテストしていますが、説明できない特殊なケースがあります。

var datef = NSDateFormatter()
datef.dateFormat = "dd-MM-yyyy";
var date_a = "02-01-1990"
var date_b = "01-01-1990"
var date_f_a = datef.dateFromString(date_a);
var date_f_b = datef.dateFromString(date_b);

data_f_a1990年1月2日午前12:00をdate_f_b返しますが、nilを返します。1990年1月1日を除いて、他の日付は期待値を返します。

datef.lenient = truedate_f_bを追加すると、nilではなくなりますが、追加する必要はありません。なぜ無効な日付なのですか?

編集1:私が使用した場合も同じように起こりますDateFormatter()

Swiftバージョン3の使用

編集2: Xcodeバージョン:8.1

rmaddy

いくつかのコメントの後、問題のコードはロケールがes_PEで実行されていると判断されましたこれはペルーの国です。問題の日付は1990年1月1日です。デフォルトでNSDateFormatterは、ローカルタイムゾーンが使用され、時間がない日付文字列を解析する場合は、深夜が想定されます。

ペルーでは、1990年に夏時間が1990年1月1日の深夜に始まりました。これは、時計が1989年12月31日の午後11時59分59秒から1990年1月1日の午前1時00分までまっすぐ進んだことを意味します。1990年1月1日は真夜中はありませんでした。

これが01-01-1990、このユーザーの文字列の変換に失敗した理由です。ペルーでは、この日付の深夜はありませんでした(また、夏時間が同時に開始された他のいくつかのロケールがある場合は)。このコードをテストするほとんどの人はペルーに住んでいないので、このコードをテストするほとんどの人はそれがうまく機能すると主張するでしょう。

役立つ情報が掲載された便利なウェブサイトを見つけました。ペルーと夏時間の詳細については、http://www.timeanddate.com/time/change/peru/lima?year = 1990参照してください1989年と1991年には、ペルーは夏時間を使用していなかったことに注意してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

NSDateFormatter dateFromString:stringDateはiOS8.3でnilを返します

分類Dev

NSDateFormatter.dateFromStringは、iOS9のアップグレード後にnullを返します

分類Dev

NSDateFormatter後のiOS日付はnilです

分類Dev

iOS-NSDateFormatterのエラー

分類Dev

NSDateFormatterはIOS10でnilを返します

分類Dev

NSDateがnilの場合、NSDateFormatterは(null)文字列を返します

分類Dev

NSDateFormatterとiOS11の現在の言語

分類Dev

iOS 6 NSDateFormatter stringFromDate:空の曜日

分類Dev

NSDateFormatter dateFromStringは、不適切な日付でnilを返します

分類Dev

NSDateFormatter dateFromStringは、間違った月の日付を返します

分類Dev

NSDateFormatterの問題

分類Dev

NSDateFormatterはnilを返します

分類Dev

NSDateFormatterのdateFromStringは、stringFromDateからの日付でnullを返します

分類Dev

NSDateformatterがIOS7.0.4で機能しない

分類Dev

NSDateFormatter and current language in iOS11

分類Dev

NSDateFormatter issue with date format in iOS 8

分類Dev

NSDateFormatterは、OSXおよびiOSで24時間制を検出します

分類Dev

NSDateFormatterはnilを示しています

分類Dev

null値を返すNSDateFormatter

分類Dev

NSDateFormatterは、単純な要求でnil日付を返します

分類Dev

NSDateFormatterはswift2でnilを返します

分類Dev

次のNSDateFormatterの問題

分類Dev

NSDateFormatterを使用したRestKit

分類Dev

NSDateFormatterの奇妙な動作

分類Dev

NSDateFormatterミリ秒のバグ

分類Dev

swift 2.0 NSDateFormatterのバグ?

分類Dev

NSDateFormatter dateFromStringの結果が間違っていますか?

分類Dev

NSDateFormatterは、ある日付に対してnillを返します

分類Dev

SwiftでNSDateFormatterを作成しますか?

Related 関連記事

  1. 1

    NSDateFormatter dateFromString:stringDateはiOS8.3でnilを返します

  2. 2

    NSDateFormatter.dateFromStringは、iOS9のアップグレード後にnullを返します

  3. 3

    NSDateFormatter後のiOS日付はnilです

  4. 4

    iOS-NSDateFormatterのエラー

  5. 5

    NSDateFormatterはIOS10でnilを返します

  6. 6

    NSDateがnilの場合、NSDateFormatterは(null)文字列を返します

  7. 7

    NSDateFormatterとiOS11の現在の言語

  8. 8

    iOS 6 NSDateFormatter stringFromDate:空の曜日

  9. 9

    NSDateFormatter dateFromStringは、不適切な日付でnilを返します

  10. 10

    NSDateFormatter dateFromStringは、間違った月の日付を返します

  11. 11

    NSDateFormatterの問題

  12. 12

    NSDateFormatterはnilを返します

  13. 13

    NSDateFormatterのdateFromStringは、stringFromDateからの日付でnullを返します

  14. 14

    NSDateformatterがIOS7.0.4で機能しない

  15. 15

    NSDateFormatter and current language in iOS11

  16. 16

    NSDateFormatter issue with date format in iOS 8

  17. 17

    NSDateFormatterは、OSXおよびiOSで24時間制を検出します

  18. 18

    NSDateFormatterはnilを示しています

  19. 19

    null値を返すNSDateFormatter

  20. 20

    NSDateFormatterは、単純な要求でnil日付を返します

  21. 21

    NSDateFormatterはswift2でnilを返します

  22. 22

    次のNSDateFormatterの問題

  23. 23

    NSDateFormatterを使用したRestKit

  24. 24

    NSDateFormatterの奇妙な動作

  25. 25

    NSDateFormatterミリ秒のバグ

  26. 26

    swift 2.0 NSDateFormatterのバグ?

  27. 27

    NSDateFormatter dateFromStringの結果が間違っていますか?

  28. 28

    NSDateFormatterは、ある日付に対してnillを返します

  29. 29

    SwiftでNSDateFormatterを作成しますか?

ホットタグ

アーカイブ