繁体   English   中英

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

[英]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];
  // 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 *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

然后将日期转换为所需的格式

您也可以使用:

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

要设置更多格式,请点击我

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM