iOS 时间格式错误导致的坑
我们的项目中有个功能是根据昨天到当前时间去查找记录,可是就在圣诞节过后,出现了问题,查找记录查找不到了?最后发现时间区间是:2019-12-26 3:00:00-----2019-12-27 23:15:45,怎么回事呢?只有年份不对,年份应该是2018年啊!代码没有问题啊!找了好久,**最后发现时间格式设置不对!** 好大的坑!
获取当前时间代码:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formattersetDateStyle:NSDateFormatterMediumStyle];[formattersetTimeStyle:NSDateFormatterShortStyle];[formattersetDateFormat:@"yyyy-MM-dd HH:mm:ss"];NSString*DateTime = [formatterstringFromDate:date];NSLog(@"当前时间:%@",DateTime);
日期的格式一定要写正确,正确格式如下: yyyy-MM-dd HH:mm:ss
下面总结下不同格式会出现的不同错误:
1. 格式:`YYYY-MM-dd HH:mm:ss`
[format setDateFormat:@"yyyy-MM-dd"];输出2018-12-27[format setDateFormat:@"YYYY-MM-dd"];输出2019-12-27
格式是YYYY-MM-dd会出现年份不正确!这是因为YYYY 是以周为单位计算的,yyyy才是标注的年份。
2. 格式:yyyy-mm-dd HH:mm:ss
[format setDateFormat:@"yyyy-MM-dd"];输出2018-12-27[format setDateFormat:@"yyyy-mm-dd"];输出2018-42-27
3. 格式:yyyy-MM-DD HH:mm:ss
[format setDateFormat:@"yyyy-MM-dd"];输出2018-12-27[format setDateFormat:@"yyyy-MM-DD"];输出2019-42-27
4. 格式:yyyy-MM-dd HH:MM:ss
[format setDateFormat:@"HH:mm:ss"]; 输出11:58:38[format setDateFormat:@"HH:MM:ss"]; 输出11:01:38
字符说明:
yyyy:以四位数字格式显示年份。
M: 将月份显示为不带前导零的数字(如一月表示为 1)。
MM: 将月份显示为带前导零的数字(例如 2019-01)。
MMM:将月份显示为缩写形式(例如 Jan)。
MMMM:将月份显示为完整月份名(例如 January)。
d:将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。
dd: 将日显示为带前导零的数字(如 01)。
H:使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %H。
HH: 使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。
h:使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)。如果这是用户定义的数字格式中的唯一字符,请使用 %h。
hh:使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)。
m:将分钟显示为不带前导零的数字(例如 12:1:15)。
mm:将分钟显示为带前导零的数字(例如 12:01:15)。
s:将秒显示为不带前导零的数字(例如 12:15:5)。
ss:将秒显示为带前导零的数字(例如 12:15:05)。
iOS 时间格式错误导致的坑相关推荐
- uniapp掘墓者之IOS时间格式
最近发现了一个小坑,特此记录一下 let str = '2020-01-20 15:34:24'; new Date(str) // Andriod // Mon Jan 20 2020 15:34: ...
- 小程序在安卓手机时间格式显示英文的坑
今天说一个关于toLocaleDateString()的坑. 安卓手机picker 时间选择 默认时间显示英文 toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分 ...
- uniapp中ios时间格式的问题
在uniapp开发中将( yyyy-MM-dd HH:mm:ss )格式的时间转换为时间戳时,Android系统下可以正常转换,在iOS系统下会报错NaN. let dateStr = '2022-4 ...
- 解决 JS 格式化时间格式错误在苹果手机 IOS 系统上为 NaN
let time = new Date('2020-08-12 23:00:00').getTime(); 或者 let time = new Date('2020-08-12 23:00:00'). ...
- 小程序ios时间格式 yyyy/MM/dd
小程序选用f2-canvas画图表, 横坐标是时间. 实际上线后,发现android上是好的,但是iphone上显示不对,后来发现是时间格式问题,ios不识别yyyy-MM-dd, 要转换成yyyy/ ...
- Safari浏览器(苹果)时间格式不能识别的坑
1. new Date()格式化的坑 在谷歌浏览器上使用new Date(str)来获取格式化时间数据支持的类型很多, 常用的格式如: 2021-9-16 2021-9-16 9:30:55 2021 ...
- 关于IOS时间格式显示问题
我们在移动开发的时候经常会要显示时间,但是由于安卓和IOS对时间戳解析的方式不同,安卓上显示正常,IOS上面不能正常显示,需要把时间戳中的 "-" replace() 替换成 &q ...
- new Date()时间格式转时间戳在苹果机iOS上无效
安卓和苹果的差异,今天又遇到一个,记下来方便以后查找. 后台传来的时间格式是'2020-09-16 11:11:11'.我想转化为时间戳就直接用 // time是后台传来的数据,时间格式是'2020- ...
- iOS时间格式化遇到的坑
**前言:**最近做项目上传文件到腾讯云,在自己手上的真机上测试没有出现任何问题,提交测试后,也没出现任何问题,都可以上传到腾讯云. 可是从app store下载后,部分客户投诉上传不成功,提示以下错 ...
- 微信小程序IOS机型时间格式显示NaN异常问题
new Date()转换时间时,IOS机型时间格式显示NaN 错误原因: ios不支持时间为2020-05-29这种格式的日期,必须转换为2020/05/29这种格式才能使用new Date()进行转 ...
最新文章
- (0010) iOS 开发之UI布局兼容 4s/5/6/7 屏幕解决方案
- 微博php-sdk使用教程,腾讯微博api(php-sdk)的使用
- 在cocos creator 中使用websocket
- Java 动态代理机制分析及扩展,第 1 部分
- Linux产生随机数的几种常见方法
- mvc 模式和mtc 模式的区别
- php调用image类提示不存在的字体,php – 无效的字体文件名(imagettfbox)
- python简易停车系统
- 我只是一个程序代码员吗?
- puppeteer中如何复用启动中的浏览器
- 使用MySQL中的对象数组查询JSON列
- QT5.14.2 官方例子 - 学习系列
- 域名邮箱和邮件服务器
- POS收单地区代码表(2015年3月版)
- 三乘三魔方教程,按步骤来肯定能搞出来
- IT 工作中常用的英语单词
- [Linux] scp免密码登录
- 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
- HTML期末学生大作业 响应式动漫网页作业 html+css+javascript
- JavaWeb 宠物领养管理系统实现(源码分享)
热门文章
- Linux 任务控制的几个技巧( , [ctrl]-z, jobs, fg, bg, kill)
- python2异步编程_Python3异步编程
- 1.1.3 Friday the Thirteenth 黑色星期五
- java泛型通俗讲解
- 文件app如何连接服务器,如何实现app与服务器连接数据库
- 三个数比大小c语言_C语言必学知识点【结构体】用法很多,坑也很多!
- python 重启同一个程序_Python – 在重启之间保存程序的状态?
- 两边双虚线是什么意思_【宠物百科】哈士奇双血统是什么意思?
- 如何配置filezilla服务端和客户端
- jquery 发送验证码60s倒计时,后重新发送