【发布时间】:2016-06-21 21:56:48
【问题描述】:
有一堆日期,我想知道他们一周中的日子。但无论何时,我循环播放,即使在午夜之后,星期几也不会改变几个小时,我不知道为什么。 这是我的代码:
func parseArray(array: [HKQuantitySample])
{
let formatter = NSDateFormatter()
formatter.dateFormat = "EEEE"
for element in array
{
let startDate: NSDate = element.startDate //example: 2015-11-13 13:30:07 +0000
let startDateArray = String(startDate).componentsSeparatedByString(" ") // example: ["2015-11-13", "13:46:53", "+0000"]
let startDateString = startDateArray[0] // example: 2015-11-13
let startDateTimeString = startDateArray[1] // example: 13:58:39
let startDateDayOfTheWeek = formatter.stringFromDate(startDate)
print("startDate: \(startDateString), startTime: \(startDateTimeString), dayOfWeek: \(startDateDayOfTheWeek)")
}
这是我得到的:
startDate: 2015-11-12, startTime: 23:32:01, dayOfWeek: Thursday
startDate: 2015-11-12, startTime: 23:41:19, dayOfWeek: Thursday
startDate: 2015-11-12, startTime: 23:50:36, dayOfWeek: Thursday
/* 午夜 */
startDate: 2015-11-13, startTime: 00:07:35, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 00:19:19, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 00:32:20, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 00:41:37, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 00:55:34, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 01:04:51, dayOfWeek: Thursday
2016-06-21 17:39:10.446213 appleWatchHealth[1173:238873] [MC] Reading from public effective user settings.
startDate: 2015-11-13, startTime: 01:14:57, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 01:24:50, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 01:36:39, dayOfWeek: Thursday
startDate: 2015-11-13, startTime: 01:45:56, dayOfWeek: Thursday
因此,即使它从 12 日更改为 13 日,它仍然给我星期四。但是它确实会在下午 1 点左右变为星期五:
startDate: 2015-11-13, startTime: 13:01:31, dayOfWeek: Friday
另外,我不知道最后一行是什么意思:
2016-06-21 17:39:10.446213 appleWatchHealth[1173:238873] [MC] Reading from public effective user settings.
【问题讨论】:
-
您的 startDateDayOfTheWeek 基于您的本地日期时间,因为您使用的是 NSDateFormatter,而您从原始 NSDate 构建的字符串使用的是 GMT。
-
Ohhh 我怎样才能改变它,使字符串也基于语言环境时间?
-
当然只是使用另一个 NSDateFormatter 以您喜欢的任何格式打印字符串的日期部分。
标签: swift swift2 nsdate nsdateformatter