swift - 将字符串转换为日期会分配错误的值

标签 swift string date

我正在尝试从字符串构造日期。日期采用 .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

知道为什么代码会这样表现

最佳答案

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

    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)

关于swift - 将字符串转换为日期会分配错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49031278/

相关文章:

ios - 如何在另一个自定义表格 View 中快速创建自定义表格 View

ios - 批量获取 Realm

r - 日期转特定格式字符

ios - Swift 编译器错误 : Missing required modules;

arrays - 使用 IFS 排列的 Bash 字符串

c - comp.lang.c 常见问题解答中有错误?计算可变格式字符串的长度

javascript - "..."和 '...' 之间有解释差异吗?

sql-server - T-SQL 如何选择最近的日期

php - php 中的 SQL 查询无法按要求工作

Swift Calendar.current.nextDate 时区问题