-4

我收到来自服务器的响应,并且需要将日期字符串转换为日期:

2017 年 6 月 29 日星期四 07:15:25 +0000

我正在尝试将字符串转换为人类可读的格式。谁能建议如何将此字符串转换为日期?

4

2 回答 2

3

您需要使用 a 将日期字符串解析为一个Date对象,然后使用另一个具有您要使用的输出格式DateFormatter的字符串创建一个字符串。DateDateFormatter

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,它有一个交互式界面,您可以在其中使用不同的日期格式并提供最常见格式的示例。

于 2017-06-29T10:08:50.337 回答
1

这就是你如何在“Thu Jun 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输出将以您指定的格式返回。

于 2017-06-29T10:15:51.880 回答