Swift:日期字符串只有月份和年份,我还可以生成日期吗?

时间:2017-01-25 12:05:23

标签: swift date

我正在将一些旧的Javascript代码移植到Swift应用程序,我的客户端的数据集有点奇怪,因为它们只记录了每个日期的月份和年份,因此安装日期字符串看起来像:{ {1}}。

在Javascript中,我可以使用:2001-05将其返回:var date = new Date("2001-05");将时间/日归零,但按预期维护年份和月份。

我目前在Swift中使用以下代码:

2001-05-01T00:00:00.000Z

这总是产生零输出。是否有可能在Swift中重现日期格式的JS行为?

1 个答案:

答案 0 :(得分:3)

你几乎拥有它,我在游乐场测试它就像这样使用它(刚刚更改了" yyyy-MM"部分):

var date = "2001-05"

func stringToDate(_ date: String) -> Date? {
    let df = DateFormatter()
    df.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale!
    df.dateFormat = "yyyy-MM"
    df.date(from: date)

    return df.date(from: date)
}

print(stringToDate(date)!)