[英]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.