IOS开发之格式化日期时间的使用 && 编程中常见问题

今天在做一个有关时间的一些开发的时候,遇见了一写问题,反正来说既是很简单的问题,但毕竟用了我一些时间去调错误,遂记录之。

本来是想用 NSDateFormat 来转换一下服务器返回的时间,然后在客户端显示一下。但是最后发现竟然显示不出来,我以为是控件没有显示出来,但是最后我查找发现竟然是没有设置frame。

此时就想肯定是frame这边有为题,遂查了网上一些文章关于NSDateFormat的使用之类,发现一个说的很好很全的,再次感谢并分享下:

http://www.cnblogs.com/Cristen/p/3599922.html

为此,我看到之后更加发现自己的代码是没有问题的,但是实际上就是出不来,很蛋疼。

这样的情况下我只好从新写了一个小Demo专门看看这个能不能打印出来。

发现确实能够打出来,所以我就想肯定是 DateString出了问题,因为我打了断点之后,这个里面的createDate 还是为nil。

但是无奈之中,我发现了 一个小的问题。

1.就是服务器返回的数据是全英文的,

2.我自己单独写的Demo中打印出来的DateString为中文的,

结合上面两点小的发现,我似乎也找到了问题的所在。

随后我把模拟器的语言转换为了English,重新调试,发现终于成功了。

总结:

  这次的实际问题就是:模拟器的语言设置为中文。但是服务器返回的时间是英文。这就导致了 NSDateformat 的 - dateFromString:方法出现问题。

解决方法:根据问题。转换模拟器语言即可。

PS:

本来写到这里已经该结束了,但是感觉自己的文章质量真的很差。一个简单的问题竟然啰嗦了半天,这对一个急于解决问题的程序员来说是很大的浪费,并且有种为了写文章而写文章的样子。对此,真的很抱歉,我自己以前没有写过,文笔真的很差,日后定会逐步加强,让自己的文章变得有内容,有好的质量,谢谢你看到了这里:)

感谢:MJ 我是看着他的代码来写的。

最后奉上我写这个项目的开源代码。有什么问题或者建议希望看到的朋友们能不吝赐教。

https://github.com/XiaoyouPrience/iTravel

时间: 2024-08-25 11:40:05

IOS开发之格式化日期时间的使用 && 编程中常见问题的相关文章

iOS开发之格式化日期时间

iOS开发之格式化日期时间 在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

iOS开发之格式化日期时间(转)

在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //用[NSDate da

iOS开发项目篇—45时间和来源处理

iOS开发项目篇—45时间和来源处理 一.时间的处理 1.简单说明 系统返回的时间是欧美通用的时区时间,需要进行处理和调整. 根据微博发送的时间和当前的时间进行比较,显示“刚刚”.“一小时前”.“一天前”等. 时间处理的情况: (1)今年 1)今天 1>1分钟内:刚刚 2>1个小时内:XX分钟前 2)昨天 XX:XX 3)至少是前天发的 07-12 XX:XX (2)非今年 2012-02-11 2.解决思路:重写微博创建时间的get方法,可以把有关时间细节的踔厉隐藏在模型中完成. (1)时间

iOS开发项目篇—46时间和来源的处理(cell的复用问题)

iOS开发项目篇—46时间和来源的处理(cell的复用问题)一.简单说明 1.存在的问题:             2.问题描述: 刷新微博界面后,展示的最新的微博数据时间显示为“刚刚”,在项目中对时间进行设计的时候,如果是在1分钟之内发表的,那么显示为“刚刚”.查看后面的微博数据后,回过头来(1分钟已经过去了),此时之前显示为“刚刚”的微博,应该显示XX分钟以前,确实显示了,但是时间的frame不正确(此时的frame=="刚刚"两个字的frame). 提示:cell的复用问题,为了

开发路程(11): 日期时间选择器datetimepicker

在做项目中,往往会遇到需要用户输入2014-07-19 09:55:53这样的格式的数据.就是典型的年月日时分秒这样的格式.这个时候,使用datetimepicker会比较简单. DateTimePicket jQuery 插件:使用此插件非强制性地将 datetimepicker. datepicker 或 timepicker 下拉列表添加到您的窗体.就是这样.很好看吧. 添加jquery.datetimepicker和datetimepicker.css到您的页面: 1 <link rel

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId. ZonedDateTime是用来处理时区相关的时间,它的各种计算都离不开ZoneId.先看ZoneId. 1. ZoneId 为时区ID,比如Europe/Paris,表示欧洲巴黎时区 1.1 时区相关知识,时区,UTC时间,GMT时间,Unix时间戳 时区 地球自西向东旋转,东边比西边先看到

Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav

Java日期时间API系列20-----Jdk8中java.time包中的新的日期时间API类,ZoneId时区ID大全等。

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等.中已经对ZoneId说明,并列出了常用时区ID信息. 并且通过 java.time.ZoneId.getAvailableZoneIds()获取到所有可用时区ID. 1.测试代码 /** * 获取可用时区ID */ @Test public void getAvailableZon

Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用java新的日期时间API重写农历LunarDate. package com.xkzhangsan.time; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import ja