В Swift 3 есть способ напечатать дату как Date, а не как String - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь сформировать тело с параметром даты, которое я должен отправить в API. Дата печатается в формате String, есть ли способ отправить ее только в формате даты.

    let isoDate = "2019-09-21"
    let dateFormatter = DateFormatter()

    dateFormatter.dateFormat = "yyyy-MM-dd"
    let date = dateFormatter.date(from:isoDate)!

    let dateStr = dateFormatter.string(from: date)

    let body: [String: Any] = [
        "date": dateStr
    ]
    print(body)

Он печатает:

["date": "2019-09-21"]

Я хочу напечатать его как:

["date": 2019-09-21]

Ответы [ 5 ]

1 голос
/ 30 сентября 2019

Пожалуйста, попробуйте:

dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from:isoDate)!
print(dateFormatter.string(from: date)) // 2019-09-21

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
print(dateFormatter.string(from: date)) // 2019-09-21 00:00:00
1 голос
/ 30 сентября 2019

Ваш пример вывода выглядит как DebugDescription of Date.

Чтобы преобразовать Date в String, вам нужно позвонить:

dateFormatter.string(from: date)

Вот экран с игровой площадки: enter image description here

1 голос
/ 30 сентября 2019
let isoDate = "2019-09-21"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = NSTimeZone(name: "UTC")! as TimeZone
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from:isoDate)!
let strDate = dateFormatter.string(from: date)
print("\(strDate)")

enter image description here

1 голос
/ 30 сентября 2019

попробуйте это:

print(dateFormatter.string(from: date))

вывод:

2019-09-21

в течение часа мин. Вы можете использовать:

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
print(dateFormatter.string(from: date))

вывод:

2019-09-21 00:00:00
0 голосов
/ 03 октября 2019

Я смог добиться этого, используя следующий код:

    let isoDate = "2019-09-21"

    let body: [String: AnyObject] = [
        "date": isoDate as AnyObject
    ]
    print(body)

Теперь это печатает:

["date": 2019-09-21]
...