如何在ios中获取今天日期的开始和结束时间? [复制]

Posted

技术标签:

【中文标题】如何在ios中获取今天日期的开始和结束时间? [复制]【英文标题】:how to get start and end time of today's date in ios? [duplicate] 【发布时间】:2016-09-12 11:54:29 【问题描述】:

我正在使用此代码获取当前日期和时间

    let today: NSDate = NSDate()
    let dateFormatter: NSDateFormatter = NSDateFormatter()
    dateFormatter.timeStyle = NSDateFormatterStyle.MediumStyle
    dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
    dateFormatter.timeZone = NSTimeZone(abbreviation: "SGT");
    print(dateFormatter.stringFromDate(today))

但我想获取今天日期的开始时间和结束时间

示例: 12-09-2016 00:00:00 AND 12-09-2016 23:59:59

如何获取当前日期的开始和结束时间?

【问题讨论】:

NSDate() 给出“现在”。您可以使用NSDateComponents 并设置hour minute secondnanosecond 组件。参考this 【参考方案1】:

您可以使用startOfDayForDate 获取今天的午夜日期,然后从该日期获取结束时间。

//For Start Date
let calendar = NSCalendar.currentCalendar()
calendar.timeZone = NSTimeZone(abbreviation: "UTC")! //OR NSTimeZone.localTimeZone()
let dateAtMidnight = calendar.startOfDayForDate(NSDate())

//For End Date
let components = NSDateComponents()
components.day = 1
components.second = -1
let dateAtEnd = calendar.dateByAddingComponents(components, toDate: startOfDay, options: NSCalendarOptions())
print(dateAtMidnight)
print(dateAtEnd)

编辑:将日期转换为字符串

let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone (abbreviation: "UTC")! // OR NSTimeZone.localTimeZone()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
let startDateStr = dateFormatter.stringFromDate(dateAtMidnight)
let endDateStr = dateFormatter.stringFromDate(dateAtEnd)
print(startDateStr)
print(endDateStr)

【讨论】:

“如何在文本字段中获取此值”是什么意思?你想在 textField 中显示这个日期吗? 其实这个答案的时区有问题。如果您不指定时区,它将提供正确的答案,否则它将改变时间。 @EridB 根据 OP 的要求编辑时区。 @NDoc 我不是在谈论提供 OP 要求的时区,但我是说如果你提供它,你不会得到这个答案的正确日期,但你会有:@ 987654325@,"Sep 12, 2016, 5:59 PM"。在 PlayGround 中尝试您的代码 不要使用 60*60*24 作为一天的持续时间。在有夏令时的地区,一天可以有 23、24 或 25 小时。使用正确的日历方法,如***.com/questions/13324633/… 的答案所示。

以上是关于如何在ios中获取今天日期的开始和结束时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何根据ios中的特定键从数组中获取字典

如何通过在 SQL Server 中选择周数来获取开始日期和结束日期

如何在angularjs中获取每周明智的开始和结束日期

如何在 iOS 中按周/月/每 X 天添加开始日期和结束日期的余数?

如何获取当前月份的开始日期和结束日期

如何在 PostgreSQL 中获取星期开始和结束日期字符串?