伊斯兰日历的快速日期转换在特定时区是错误的

问题描述

伊斯兰日历正在更新(月相阶段)。例如,斋月可能少过1天或更多天。但这无法预测,而且结果会在月底发布。因此,以下代码有时将无法正常工作:

func islamicDate(of formattedDate: String) -> String {
    let timezone = TimeZone(abbreviation: "irsT")!

    // Get the date
    var inputCalendar = Calendar(identifier: .persian)
    inputCalendar.timeZone = timezone

    let inputFormatter = DateFormatter()
    inputFormatter.calendar = inputCalendar
    inputFormatter.dateFormat = "yyyy/MM/dd"
    inputFormatter.timeZone = timezone

    let date = inputFormatter.date(from: formattedDate)!

    // Convert the date
    var outputCalendar = Calendar(identifier: .islamic)
    outputCalendar.timeZone = timezone

    let outputFormatter = DateFormatter()
    outputFormatter.calendar = outputCalendar
    outputFormatter.dateFormat = "dd MMMM"
    outputCalendar.timeZone = timezone
    let outputFormattedDate = outputFormatter.string(from: date)

    return outputFormattedDate
}

例如,给1399/06/04将导致:

06穆罕

但有望成为

05穆哈拉姆

尽管在其他时区中是正确的,但在irsT中是错误的。如何与时区的当前时间同步?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)