Альтернатива для функции календаря в Swift для Ubuntu? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь создать работающий образ Docker для моего Kitura AppServer. Я делаю кодирование в XCode на моем MacBook, но я хочу развернуть сервер в облачной среде с помощью Docker.

Для этого требуется, чтобы в моем случае сборка в Unix была ibm-версией Ubuntu ...

ОТ ibmcom / swift-ubuntu: 5.0.2

К сожалению, сборкаПроцесс, следующий за описаниями, довольно разочаровывает, и требуется несколько раз, чтобы получить работающий образ, используя команды сборки, перечисленные здесь: https://www.kitura.io/docs/deploying/docker.html

Но время от времени у меня есть рабочий пакет. Однако после многих проб и ошибок я узнал, что Docker Image, работающий в Ubuntu, не любит, когда мои звонки в Календаре получают день недели.


var todayWeekday = Calendar.current.dateComponents(in: timeZone!, from: date).weekday! - 1

Это заставляет мой контейнер останавливаться с исключением и требует перезапуска ...

У любого есть альтернативное решение для вызова надежного дня недели с функцией, котораяможет работать с MacOS, а также с Ubuntu?

Я не хочу писать свой собственный метод, так как боюсь, что мне не хватает некоторых факторов, которые связаны со сложностью дат.

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Кажется, в этом вопросе был простой подход ... Я мог бы использовать DateFormatter ()

let timeFormatWd = DateFormatter()
timeFormatWd.dateFormat = "e"

//New version of getting today Weekday !
let todayWeekday = Int(timeFormatWd.string(from: date))
0 голосов
/ 02 октября 2019

Вы можете попробовать что-то вроде этого:

#!/usr/bin/env swift

import Foundation

@discardableResult 
func runShell(_ args: String...) -> Int32 {
    let process = Process()
    process.launchPath = "/usr/bin/env"
    process.arguments = args
    process.launch()
    process.waitUntilExit()
    return process.terminationStatus
}

runShell("date", "+%u")
...