我如何用 "dd MMM yyyy" 的日期来表示它,意思是“2019 年 6 月 11 日”?

How do I represent it with date for "dd MMM yyyy", means "11 JUN 2019"?

我有这样的日期字符串“2019 年 6 月 11 日 16:35:21”。当我尝试将字符串转换为 NSDate 时 returns nil.

NSString str =@"11 June, 2019 16:35:21";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat: @"dd MMM yyyy"];
NSDate *date = [formatter dateFromString:str];
NSString *string = [[formatter stringFromDate:date] uppercaseString];

还有其他方法可以转换吗?或者我哪里做错了?

像这样使用日期格式

 NSString str =@"11 June, 2019 16:35:21";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] 
                 initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
 // input dateformat      @"11 June, 2019 16:35:21";
[formatter setDateFormat: @"dd MMMM, yyyy HH:mm:ss"];
NSDate *date = [formatter dateFromString:str];
// output dateformat for e.g @"11 Jun 2019 
   [formatter setDateFormat: @"dd MMM yyyy"];
NSString *string = [[formatter stringFromDate:date] uppercaseString];

Karthik 是对的,首先,你必须将 @"dd MMMM, yyyy HH:mm:ss" 格式的日期字符串转换为 NSDate,然后将其转换为你想要的格式 @"dd MMM yyyy"。 希望下面的代码能起作用。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] 
             initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
[formatter setDateFormat: @"dd MMMM, yyyy HH:mm:ss"];

NSString *str = @"11 June, 2019 16:35:21";
NSDate *date = [formatter dateFromString:str];
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat: @"dd MMM yyyy"];
NSString *string = [[formatter stringFromDate:date] uppercaseString];

NSDateFormatter 使用 Unicode 技术标准。

这个网站有很棒的文档: Date_Format_Patterns

例如“2019 年 6 月 11 日 16:35:21”可以解析为:

[dateFormatter setDateFormat:@"dd MMMM, yyyy HH:mm:ss"]