我们的项目中有个功能是根据昨天到当前时间去查找记录,可是就在圣诞节过后,出现了问题,查找记录查找不到了?最后发现时间区间是: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 时间格式错误导致的坑相关推荐

  1. uniapp掘墓者之IOS时间格式

    最近发现了一个小坑,特此记录一下 let str = '2020-01-20 15:34:24'; new Date(str) // Andriod // Mon Jan 20 2020 15:34: ...

  2. 小程序在安卓手机时间格式显示英文的坑

    今天说一个关于toLocaleDateString()的坑. 安卓手机picker 时间选择 默认时间显示英文 toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分 ...

  3. uniapp中ios时间格式的问题

    在uniapp开发中将( yyyy-MM-dd HH:mm:ss )格式的时间转换为时间戳时,Android系统下可以正常转换,在iOS系统下会报错NaN. let dateStr = '2022-4 ...

  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'). ...

  5. 小程序ios时间格式 yyyy/MM/dd

    小程序选用f2-canvas画图表, 横坐标是时间. 实际上线后,发现android上是好的,但是iphone上显示不对,后来发现是时间格式问题,ios不识别yyyy-MM-dd, 要转换成yyyy/ ...

  6. Safari浏览器(苹果)时间格式不能识别的坑

    1. new Date()格式化的坑 在谷歌浏览器上使用new Date(str)来获取格式化时间数据支持的类型很多, 常用的格式如: 2021-9-16 2021-9-16 9:30:55 2021 ...

  7. 关于IOS时间格式显示问题

    我们在移动开发的时候经常会要显示时间,但是由于安卓和IOS对时间戳解析的方式不同,安卓上显示正常,IOS上面不能正常显示,需要把时间戳中的 "-" replace() 替换成 &q ...

  8. new Date()时间格式转时间戳在苹果机iOS上无效

    安卓和苹果的差异,今天又遇到一个,记下来方便以后查找. 后台传来的时间格式是'2020-09-16 11:11:11'.我想转化为时间戳就直接用 // time是后台传来的数据,时间格式是'2020- ...

  9. iOS时间格式化遇到的坑

    **前言:**最近做项目上传文件到腾讯云,在自己手上的真机上测试没有出现任何问题,提交测试后,也没出现任何问题,都可以上传到腾讯云. 可是从app store下载后,部分客户投诉上传不成功,提示以下错 ...

  10. 微信小程序IOS机型时间格式显示NaN异常问题

    new Date()转换时间时,IOS机型时间格式显示NaN 错误原因: ios不支持时间为2020-05-29这种格式的日期,必须转换为2020/05/29这种格式才能使用new Date()进行转 ...

最新文章

  1. (0010) iOS 开发之UI布局兼容 4s/5/6/7 屏幕解决方案
  2. 微博php-sdk使用教程,腾讯微博api(php-sdk)的使用
  3. 在cocos creator 中使用websocket
  4. Java 动态代理机制分析及扩展,第 1 部分
  5. Linux产生随机数的几种常见方法
  6. mvc 模式和mtc 模式的区别
  7. php调用image类提示不存在的字体,php – 无效的字体文件名(imagettfbox)
  8. python简易停车系统
  9. 我只是一个程序代码员吗?
  10. puppeteer中如何复用启动中的浏览器
  11. 使用MySQL中的对象数组查询JSON列
  12. QT5.14.2 官方例子 - 学习系列
  13. 域名邮箱和邮件服务器
  14. POS收单地区代码表(2015年3月版)
  15. 三乘三魔方教程,按步骤来肯定能搞出来
  16. IT 工作中常用的英语单词
  17. [Linux] scp免密码登录
  18. 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
  19. HTML期末学生大作业 响应式动漫网页作业 html+css+javascript
  20. JavaWeb 宠物领养管理系统实现(源码分享)

热门文章

  1. Linux 任务控制的几个技巧( , [ctrl]-z, jobs, fg, bg, kill)
  2. python2异步编程_Python3异步编程
  3. 1.1.3 Friday the Thirteenth 黑色星期五
  4. java泛型通俗讲解
  5. 文件app如何连接服务器,如何实现app与服务器连接数据库
  6. 三个数比大小c语言_C语言必学知识点【结构体】用法很多,坑也很多!
  7. python 重启同一个程序_Python – 在重启之间保存程序的状态?
  8. 两边双虚线是什么意思_【宠物百科】哈士奇双血统是什么意思?
  9. 如何配置filezilla服务端和客户端
  10. jquery 发送验证码60s倒计时,后重新发送