将日期从奇怪的字符串转换为格式为日月年的日期

Convert date from weird string to date in format day month and year

你好我正在解析 API 的终点,从那里我得到一个字符串,其中包含这样的日期字符串 2016-01-18T13:28:06.357 但我想将其转换为 01 Jan 16,我已尝试使用以下提到的不同格式之一进行多次转换。请提供有关如何完成此任务的建议。

    NSString * date = [dictionary objectForKey:@"date"];
NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
[dateformat setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];
[dateformat setDateFormat:@"dd MMM yyyy"];
NSDate *myDate = [dateformat date];

您应该使用这种格式:

NSString *dateStr = @"2016-01-18T13:28:06.357";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];

NSDate *date = [formatter dateFromString:dateStr];
// date is 2016-01-18 08:28:06 +0000

然后将该日期转换为您需要的 format

  // Objective C   
        NSString * date = [dictionary objectForKey:@"date"];
        NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
        [dateformat setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];
        [dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
        NSDate *myDate = [dateformat dateFromString:date];

        [dateformat setDateFormat:@"dd MMM yyyy"];

        NSString *strDate=[dateformat stringFromDate:myDate];

 // Swift 3.0
       var date = (dictionary["date"] as! String)
       var dateformat = DateFormatter()
       dateformat.timeZone = NSTimeZone(name: "EST")
       dateformat.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
       var myDate = dateformat.date(fromString: date)!

       dateformat.dateFormat = "dd MMM yyyy"
       var strDate = dateformat.string(from: myDate)

你也可以使用这个:

NSString *dateString = @"2016-01-18T13:28:06.357";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *date = [dateFormatter dateFromString:dateString];

// Convert date object into desired format
[dateFormatter setDateFormat:@"dd MMMM yy"];
NSString *newDateString = [dateFormatter stringFromDate:date];

NSLog(@"newDateString=%@",newDateString);

你应该使用这种格式代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    

//Get Date    
[formatter setDateFormat:@"dd"];
NSString *strDate = [formatter stringFromDate:[NSDate date]];
NSLog(@"Date is - %@",strDate);

//Get Month    
[formatter setDateFormat:@"MMM"];
NSString *strMonth = [formatter stringFromDate:[NSDate date]];
NSLog(@"Month is - %@",strMonth);

//Get Year    
[formatter setDateFormat:@"yyyy"];
NSString *strYear = [formatter stringFromDate:[NSDate date]];
NSLog(@"Year is - %@",strYear);

日志是:

Date is - 05
Month is - Feb
Year is - 2016

设置更多格式,Click Me