簡體   English   中英

ObjC NSDateFormatter stringFromDate 返回 nil

[英]ObjC NSDateFormatter stringFromDate returns nil

我有一個 function ,它接受 2 個參數、一個格式@"2022-09-19T18:00:00.000Z"的日期字符串和一個模式(日期格式): @"MMM d"
問題是日期始終為 nil,因此formattedDate也為 nil,但是,如果我更改手機設置中的區域,例如,function 工作正常。
原始地區是烏克蘭,但這顯然應該適用於任何地區。

{
  NSDateFormatter * df = [NSDateFormatter new];
  [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
  [df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];

  NSDate * date = [df dateFromString: dateStr];
  [df setLocalizedDateFormatFromTemplate: pattern];
  [df setTimeZone:[NSTimeZone localTimeZone]];

  NSString * formattedDate = [df stringFromDate: date];

  if(formattedDate != nil){
    resolve(formattedDate);
  } else {
    resolve(@"");
  }
}

我已經嘗試過那里的答案,但不幸的是沒有運氣。

對於固定格式的日期表示,通常需要將語言環境設置為 POSIX:

RFC3339DateFormatter = [[NSDateFormatter alloc] init];
RFC3339DateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
RFC3339DateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZZZZZ";
RFC3339DateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

如果您的目標是 macOS 10.12 或更高版本,您還可以考慮使用NSISO8601DateFormatter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM