将日期字符串转换为正确的格式

Posted

技术标签:

【中文标题】将日期字符串转换为正确的格式【英文标题】:Convert date string into proper format 【发布时间】:2017-06-29 10:00:14 【问题描述】:

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

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

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

【问题讨论】:

您可以使用日期格式化程序来格式化日期和时间。 您需要指定所需的输出格式。 @SushilSharma 你能建议如何实现这一点吗?我无法为“Thu Jun 29”编写日期格式 你的输出格式应该是“EEE, MMM d” 【参考方案1】:

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

【讨论】:

请将输出格式更改为“EEE, MMM d”。将达到要求的答案【参考方案2】:

这是您可以在 "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的值,输出将以您指定的格式返回。

【讨论】:

以上是关于将日期字符串转换为正确的格式的主要内容,如果未能解决你的问题,请参考以下文章

将字符串列转换为日期时间格式

如何在不同的字符串中查找日期并将其转换为正确的日期格式?

将字符串转换为日期和日期时间

将 varchar2 转换为日期

当我在英国地区将字符串转换为日期并且时区是马斯喀特时,DateFormatter 给了我不正确的结果

sql怎么把字符串转换为日期格式