2017-06-29 78 views
-4

我得到来自服务器的响应,有一个日期字符串,我需要转换成一个日期:转换日期字符串转换成合适的格式

周四6月29日7时15分25秒+0000 2017年

我想将字符串转换为人类可读的格式。任何人都可以建议如何将此字符串转换为日期?

+1

您可以使用日期格式化程序来格式化日期和时间。 –

+0

您需要指定所需的输出格式。 –

+0

@SushilSharma你可以请建议如何实现这一点。我无法为'Thu Jun 29'输入日期格式 –

回答

3

你需要使用DateFormatter的日期字符串解析为Date对象,然后用另一DateFormatter与您要使用的输出格式创建从Date的字符串。

let created_at = "Thu Jun 29 07:15:25 +0000 2017" 
let df = DateFormatter() 
df.dateFormat = "E MMM dd HH:mm:ss Z yyyy" 
guard let date = df.date(from: created_at) else {return} 
let outputFormatter = DateFormatter() 
outputFormatter.dateFormat = "EEE, MMM d" 
let outputDate = outputFormatter.string(from: date) 

如果你想知道的格式是什么样的日期,使用NSDateFormatter.com,其中有一个互动的界面,你可以玩不同的日期格式,并有最常见的格式的例子也是如此。

+1

请将输出格式更改为“EEE,MMM d”。将达到所需的答案 – sschunara

1

这是如何在“周四6月29日”格式化

-(NSString *)formatCreatedAt:(NSString *)createdAt 
{ 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"EEE MMM dd HH:mm:ss Z yyyy"]; 
    NSDate *date = [dateFormat dateFromString:createdAt]; 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"EEE MMM dd"]; 

    NSString *stringFromDate = [formatter stringFromDate:date]; 
    return stringFromDate; 
} 

在此方法中传递的created_at值和输出将在您指定的格式返回。