我正在为iPhone开发一个上传图片到网络服务器的应用程序。这些照片在文件名中有拍摄时间。因为它们可以从世界的任何地方获取,所以我必须保持对时区和DST的关注。我认为我可以使用CFAbsoluteTimeGetCurrent,它不应该被本地化(NSDate date返回本地化版本的时间,带或不带"AM“、"PM”、"p.m.“。或者其他任何变种。例如,如果您的手机设置为阿拉伯语,它将返回阿拉伯字符!)。
那么,你能推荐一个函数来将CFAbsoluteTimeGetCurrent转换为类似于"2011-11-03 14:12:10“的"MySQL like”日期吗?
我的第二个问题是:时区和夏令时怎么样?不管iPhone时区如何设置,CFAbsoluteTimeGetCurrent总是返回一个协调世界时的日期?它总是不含DST吗?
当然,我知道本地iPhone日期/时间可能是错误的,但是毫秒精度对我的应用程序并不重要:)
提前谢谢你!
发布于 2011-11-03 08:15:07
你所说的到底是什么意思
(NSDate date返回时间的本地化版本,带或不带"AM“、"PM”、"p.m.“或者其他任何变种。例如,如果您的手机设置为阿拉伯语,它将返回阿拉伯字符!)。
[NSDate date]返回一个NSDate*对象。我假设您真正的意思是-[NSDate description]的输出返回了用户当前区域设置的本地化字符串,但问题是,为什么要依赖-[NSDate date]的输出?如果需要以某种方式格式化日期,则应使用NSDateFormatter。
发布于 2011-11-03 08:26:15
CFAbsoluteTime表示与时区或本地化设置无关的时间点。如果您想格式化日期(即NSDate对象),您应该查看NSDateFormatter,它允许您指定输出字符串的确切格式和本地化(如果有的话)。(如果您需要在核心基础级别工作,CFDateFormatter也会做同样的事情。)
https://stackoverflow.com/questions/7988910
复制相似问题