IOS NSDate NSDateFormatter 导致相差8小时
时间问题应该是所有编程语言都要处理的。详细学过php的同学知道,php中也会有相差8小时的问题,然而php可以非常方便的解决的,直接设置下就好了
我最近在学习IOS的过程中,发现IOS的日期处理也是个大坑。记录下我遇到的问题
我开始使用NSDate获取时间发现 相差8小时,解决方法如下
NSDate *date = [NSDate date];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate: date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
上面4句代码可以解决NSDate 8小时问题
然后我为了获取今天的起止时间,我就简单 处理成 获取今天的日期,然后拼接 起止时间 00:00:00 ~ 23:59:59
问题来了,在使用NSDateFormatter进行格式化之后,发现又差了8个小时,这真是蛋疼的事情呀
通过如下代码解决
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
这样才解决了我纠结的事情
总结来说IOS在时间日期这块处理的 没有 php优雅,太多冗余代码了
完整代码如下
NSDate *date = [NSDate date];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate: date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *todayDate = [dateFormatter stringFromDate:localeDate];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *startDate = [dateFormatter dateFromString:[todayDate stringByAppendingString:@" 00:00:00"]];
NSDate *endDate = [dateFormatter dateFromString:[todayDate stringByAppendingString:@" 23:59:59"]];
原文地址:IOS NSDate NSDateFormatter 导致相差8小时
标签:ios nsdate nsdateformatter 8小时
智能推荐
IOS NSDate NSDateFormatter 导致相差8小时的更多相关文章
- ios 时间解析 差8个小时
啥问题也有:小程序中web开发工具里显示时间正常,ios上显示的查8小时 原因: 使用 NSDate *date = [NSDate date]; 获取的时间是标注的UTC时间,和北京时间相差8小时. ...
- iOS-NSDate 相差 8 小时
转载自:http://blog.csdn.net/diyagoanyhacker/article/details/7096612 NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地 ...
- php5.1以上版本时间戳_时间戳与日期格式转换_相差8小时 的解决方案
php5.1以上时间戳会与实际时间相差8小时,解决办法如下 .最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!! .修改php.ini.打开php.ini查找date.time ...
- 解决weblogic与系统时间相差8小时的问题
解决weblogic与系统时间相差8小时的问题 在一般情况下weblogic与系统时间是很少会出现时间差的问题,但有可能在某一特定的情况下就会出现,如使用weblogic8版本时可能会出现时差问题: ...
- 解决mongodb ISODate相差8小时问题
服务端使用mongoose操作mongodb,其中Schema中的日期字段定义如下: date: {type:Date, default:Date.now},//操作日期 插入到mongodb中adt ...
- SpringBoot时间戳与MySql数据库记录相差14小时排错
项目中遇到存储的时间戳与真实时间相差14小时的现象,以下为解决步骤. 问题 CREATE TABLE `incident` ( `id` int(11) NOT NULL AUTO_INCREMENT ...
- CentOS系统时间与现在时间相差8小时解决方法
很多网友在安装完CentOS系统后发现时间与现在时间相差8小时,这是由于我们在安装系统的时选择的时区是上海,而CentOS默认bios时间是utc时间,所以时间相差了8小时.这个时候的bios的时间和 ...
- 解决tomcat中jdk1.5运行日志相差8小时问题
tomcat运行日志时间与电脑中的时间相差8小时,原因是因为jdk1.5的原因: 解决办法是在jdk运行的时候加上默认参数: Window->Preferences->Java->I ...
- docker之容器日志输出与系统时间相差8小时解决办法
参考:https://blog.csdn.net/eumenides_/article/details/94719944 https://muguang.me/it/2658.html 使用doc ...
随机推荐
- maven 问题汇总
尽量用高版本maven 3以上的版本 1.maven环境变量相关 maven环境变量配置依赖于JAVA_HOME配置 maven环境变量配置为M2_HOME maven配置完环境变量需要重启操作系统 ...
- 1076 K尾相等数
时间限制:500MS 内存限制:65536K提交次数:251 通过次数:80 题型: 编程题 语言: C++;C Description 从键盘输入一个自然数K(99999999>K> ...
- python 代码片段10
#coding=utf-8 #元组是列表的近亲.列表用方括号,元组用小括号 #django配置文件大量用到元组 #注意,单个元素的元组要求在最后"必须"跟一个逗号. a=(&quo ...
- 自己的一份Spring的xml配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- 【POJ】2954 Triangle(pick定理)
http://poj.org/problem?id=2954 表示我交了20+次... 为什么呢?因为多组数据我是这样判断的:da=sum{a[i].x+a[i].y},然后!da就表示没有数据了QA ...
- 【wikioi】1222 信与信封问题(二分图+特殊的技巧)
http://wikioi.com/problem/1222/ 一开始我就想到这样构图的,即可能的连边.但是似乎无法判断. 然后想来想去想不出来.. 题解: 同样是二分图,将可能的连边,然后跑一次最大 ...
- 用edtftpj实现Java FTP客户端工具
edtftpj是一个java FTP工具包,使用非常方便,感觉比Apache的好用,但Apache更灵活.edtftpj有多种版本,分别是java..net和js版本.对于Java版的有一个免费版本. ...
- Spring动态配置多数据源
Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...
- 给NSString增加Java风格的方法
给NSString增加Java风格的方法 文章目录 我实在受不了 NSString 冗长的方法调用了,每次写之前都要查文档.特别是那个去掉前后多余的空格的方法,长得离谱.与之对应的别的语言,拿 jav ...
- CCAction
之前介绍CCNode的时候说过,动作是指在特定时间内完成移动.缩放.旋转等操作的行为,节点可以通过运行动作来实现动画效果,这里的动作就是指CCAction对象,它有很多的子类,每个子类都封装了不同的动 ...