将String转换为Date会分配错误的值

问题描述 投票:0回答:1

我正在尝试从字符串构造日期。日期在.islamic日历中。我使用以下代码

let StringValue = "1439/01/02"
//constructing the Hijri Date
let HijriFormatter = DateFormatter ()
HijriFormatter.calendar = Calendar(identifier: .islamic)
HijriFormatter.dateFormat="yyyy/MM/dd"
HijriFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00")
let hijriDate =  HijriFormatter.date(from: StringValue)
print (hijriDate!)

输出应该类似于字符串。但是,出于某种原因,我得到以下输出:

2017-09-22 00:00:00 +0000

知道为什么代码以这种方式表现的任何想法

swift string date
1个回答
0
投票

您可以使用日历从hijri日期获取日期组件:

    let calenadr = Calendar(identifier: .islamicUmmAlQura)
    let unitFlags: Set<Calendar.Component> = [.day, .month, .year]
    let comps = calenadr.dateComponents(unitFlags, from: hijriDate!)
    print(comps.day , comps.month, comps.year)
© www.soinside.com 2019 - 2024. All rights reserved.