84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如题如何获取当天某一时刻的时间戳呢?
认证高级PHP讲师
NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"]; [greCalendar setTimeZone: timeZone]; NSDateComponents *dateComponents = [greCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]]; // 定义一个NSDateComponents对象,设置一个时间点 NSDateComponents *dateComponentsForDate = [[NSDateComponents alloc] init]; [dateComponentsForDate setDay:dateComponents.day]; [dateComponentsForDate setMonth:dateComponents.month]; [dateComponentsForDate setYear:dateComponents.year]; [dateComponentsForDate setHour:23]; [dateComponentsForDate setMinute:59]; NSDate *dateFromDateComponentsForDate = [greCalendar dateFromComponents:dateComponentsForDate]; return dateFromDateComponentsForDate;
这个是获取当天北京时区的23:59分,你把你要获取的时间修改一下就行了,时间戳的话,把时区改为零时区就行了,能解决你的问题吗?
你好 您说的这个方法不能获取到当天北京时区的 23:59 分的日期,你虽然已经设置了时区, 并且设置了小时和分钟, 但是还是不能获取到当天0点和 23 点 59 分钟的日期时间, 是否我自己用你的代码有什么不对的地方, 请指出 谢谢
我后来找的方法是: 不用设置时区,直接设置小时为8 小时, 这样可以获取
// 创建日历 NSCalendar *calendar = [NSCalendar currentCalendar]; // 初始化日历组件 NSDateComponents *dateComponents = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:[NSDate date]]; [dateComponents setYear:dateComponents.year]; [dateComponents setMonth:dateComponents.month]; [dateComponents setDay:dateComponents.day]; [dateComponents setHour:8]; // 设置为为8 时 NSDate *timeDate = [calendar dateFromComponents:dateComponents]; // 从0 点开始24 小时之后的时间 NSDate *end = [timeDate dateByAddingTimeInterval:24 * 3600]; WZLog(@"获取的时间为 = %@", timeDate);
你好, 你的方法是正确的, 我说的这个只是显示的是当前正确的时间, 当时转换为时间戳之后其实不是正确的, 不好意思 , 是我弄错了
这个是获取当天北京时区的23:59分,你把你要获取的时间修改一下就行了,时间戳的话,把时区改为零时区就行了,能解决你的问题吗?
你好 您说的这个方法不能获取到当天北京时区的 23:59 分的日期,你虽然已经设置了时区, 并且设置了小时和分钟, 但是还是不能获取到当天0点和 23 点 59 分钟的日期时间, 是否我自己用你的代码有什么不对的地方, 请指出 谢谢
我后来找的方法是: 不用设置时区,直接设置小时为8 小时, 这样可以获取
你好, 你的方法是正确的, 我说的这个只是显示的是当前正确的时间, 当时转换为时间戳之后其实不是正确的, 不好意思 , 是我弄错了