NSDateFormatter 是如何工作的?
How NSDateFormatter works?
我创建了一个下面的方法,我可以在其中发送 dateString、InputFormat 和 OutputFormat,如下所示。
- (NSString *)InstanceAwesomeFormatterunformattedDate:(NSString*)unformattedDate inputFormat:(NSString*)inputFormat outPutFormat:(NSString*)outPutFormat{
//unformattedDate is 13 july 1989
//inputFormat is @"dd MMMM yyyy"
//outPutFormat is @"dd"
NSDateFormatter *myDateFormattr = [[NSDateFormatter alloc] init];
[myDateFormattr setDateFormat:inputFormat];
NSDate *date = [myDateFormattr dateFromString:unformattedDate];
//Why date is 1990-07-12 18:30:00 +0000
[myDateFormattr setDateFormat:outPutFormat];
NSString *FinalExpiryDateForUserProfile = [myDateFormattr stringFromDate:date];
// FinalExpiryDateForUserProfile is 13 which is correct
return FinalExpiryDateForUserProfile;
}
我想了解为什么 date 打印的是 12 而不是 13。
任何想法
您需要使用语言环境
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd"];
NSLocale *enLocale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:enLocale];
时区问题,您可以这样设置时区:
NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
您可以根据需要添加任何时区而不是 GMT
。如果您根据您的设置设置正确的时区,设置 NSLocale
并不是真正的强制性设置。
我创建了一个下面的方法,我可以在其中发送 dateString、InputFormat 和 OutputFormat,如下所示。
- (NSString *)InstanceAwesomeFormatterunformattedDate:(NSString*)unformattedDate inputFormat:(NSString*)inputFormat outPutFormat:(NSString*)outPutFormat{
//unformattedDate is 13 july 1989
//inputFormat is @"dd MMMM yyyy"
//outPutFormat is @"dd"
NSDateFormatter *myDateFormattr = [[NSDateFormatter alloc] init];
[myDateFormattr setDateFormat:inputFormat];
NSDate *date = [myDateFormattr dateFromString:unformattedDate];
//Why date is 1990-07-12 18:30:00 +0000
[myDateFormattr setDateFormat:outPutFormat];
NSString *FinalExpiryDateForUserProfile = [myDateFormattr stringFromDate:date];
// FinalExpiryDateForUserProfile is 13 which is correct
return FinalExpiryDateForUserProfile;
}
我想了解为什么 date 打印的是 12 而不是 13。 任何想法
您需要使用语言环境
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd"];
NSLocale *enLocale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:enLocale];
时区问题,您可以这样设置时区:
NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
您可以根据需要添加任何时区而不是 GMT
。如果您根据您的设置设置正确的时区,设置 NSLocale
并不是真正的强制性设置。