首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >iOS应用程序偶尔会向REST发送格式无效的ISO8601日期。

iOS应用程序偶尔会向REST发送格式无效的ISO8601日期。
EN

Stack Overflow用户
提问于 2015-07-06 22:34:18
回答 2查看 100关注 0票数 2

每天有几次,我们的PHP记录一个由无效格式的ISO8601日期引起的错误,这个错误来自iOS应用程序发送的GET请求。有趣的是,大多数电话都没问题。2015-07-07T00:00:00+10:00,但是我们经常会遇到一个奇怪的(例如。2015-07-07T12:00:00 am+10:00)。

我认为导致这种情况的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];

NSString *iso8601StringStart = [dateFormatter stringFromDate:self.searchStartTime];

在什么情况下,NSDateFormatter可以(错误地)从“yyyy‘the :mm:ssZZZZZ”中获得am/pm,而这显然是意外的行为?是否有某种NSDate会导致不同的行为?我很困惑。给定的日期总是通过dateFromComponents创建的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-07 16:36:01

我的最后一个解决方案(我被藻类的回答推了一下):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];

Unicode规范是有用的(谢谢藻类),苹果技术QA也是一样,它建议en_US_POSIX作为一种特殊的解决方案。

在iOS上,用户可以重写默认的AM/PM与24小时时间设置(通过设置>常规>日期和时间>24小时时间),这会导致NSDateFormatter重写您设置的格式字符串,这可能导致您的时间解析失败。

最有帮助的是,我找到了惠兹对这种行为的解释,虽然有点老了:

当iPhone用户在“美国”和“法国”之间更改其区域格式时,用户的“24小时时间”设置将自动切换到该地区最常见的模式。在法国,这会将24小时的时间设置为“开启”,而在美国,这将使其“关闭”。然后,用户可以手动覆盖该设置,这就是问题的开始。 问题来自于NSDateFormatter在用户手动选择的12或24小时时间模式中“卡住”。因此,如果一个法国用户手动选择12小时模式,并且应用程序请求NSDateFormatter以24小时格式“hhmm”输出时间,它实际上会收到12小时格式的时间,例如“01:00 PM”,就好像应用程序已经请求了“hhmm aa”一样。如果美国用户手动选择24小时模式,则会发生相反的情况:使用12小时格式“hhmm aa”输出时间实际上会使您得到24小时格式的时间,例如“17:00”。

票数 0
EN

Stack Overflow用户

发布于 2015-07-06 23:11:25

我不相信该格式字符串能够生成包含您显示的am/pm注释的日期。如果我是您,我的第一个课程将是反复检查这些日期是否真的是由这些代码行生成的。

但是,如果您确信正在发生这种情况,那么我看到的唯一问题是,没有显式设置日期格式化程序对象的区域设置和日历可能是不正确的。日期格式语法是由unicode联合会定义的,管理规范在第4.5节中确实指出,“如果没有列出区域设置,则dayPeriods回退到AM/PM”。我不理解整个文档,但它表明,非常明确是最安全的途径。

如果您唯一的需求是ISO8601,那么您可以在UTC时区使用RFC3339,因为这是ISO8601的配置文件。这将为该格式创建正确的格式化程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z"
formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)!
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31261377

复制
相关文章
iOS中url的特殊字符转换
一般来说我们调用webVIew的时候,只要给webVIew传一个url,在网页里面就可以显示网页信息。但是当我们传的url比较麻烦或者带文字符,带参数的时候我们需要对特殊字符进行转义。我们还可以用遍历,正则等来把特殊字符给替换掉!!
好派笔记
2021/10/29
3.1K0
php 字符串转换时间_php 字符时间如何转换「建议收藏」
php字符时间转换的方法:1、通过php中的“strtotime()”函数将任何英文文本的日期时间描述解析为时间戳;2、使用php中的“mktime()”函数从日期取得时间戳即可。
全栈程序员站长
2022/09/05
9.2K0
php 字符串转换时间_php 字符时间如何转换「建议收藏」
新建 Microsoft Word 文档
正如我们在第4章中所了解到的,大多数组织都会提供一个可访问Internet(或Intranet,如果在防火墙后面进行测试)的网站,以向匿名用户推销组织能力、联系信息等。这些类型Web服务的一种常见部署方法是托管在非军事区(DMZ)中,非军事区是一个逻辑上或物理上独立的子网,用于公开组织面向公众的外部服务。
顾翔
2022/09/23
7K0
新建 Microsoft Word 文档
使用Python自动化Microsoft Excel和Word
毫无疑问,微软的Excel和Word是公司和非公司领域使用最广泛的两款软件。它们实际上是“工作”的同义词。通常情况下,每一周我们都会将两者结合起来,并以某种方式发挥它们的优点。虽然一般的日常用途不会要求自动化,但有时自动化可能是必需的。也就是说,当您有大量的图表、图形、表格和报告要生成时,如果您选择手动方式,它可能会成为一项极其繁琐的工作。其实没必要这样。实际上,有一种方法可以在Python中创建一个管道,您可以将两者无缝集成,在Excel中生成电子表格,然后将结果传输到Word中,几乎即时生成报告。
deephub
2021/04/30
1.5K0
php字符串中转义成特殊字符实例讲解
在php的字符串使用时,我们有学会一些转义字符,相信大家在记忆这些知识点的时候费了不少的功夫。本篇我们为大家带来的是字符串的转义方法,涉及到特殊字符的使用,主要有两种方法可以实现:mysql库函数和转义函数。下面就这两种方法,在下文中展开详细的介绍。
用户8832582
2021/07/13
1.9K0
故障分析 | 密码使用特殊字符
最近在使用脚本新建了一批应用用户,发现一个奇怪的问题,有部分用户存下以下问题:应用使用该密码能正常访问,但使用 mysql 客户端登录手动输入密码无法登录。经过与正常用户对比发现存在登录异常的用户使用了特殊字符"$"。
爱可生开源社区
2022/10/11
2.2K0
PHP转义Json里的特殊字符的函数
在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON。数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要转义,因为有大量的特殊字符会破坏 json 的结构。 比如这么一段 content: 'Lorem ipsum "dolor" sit amet, consectetur \ adipiscing elit.' 则必须要转化为: Lorem ipsum \"dolor\" sit amet,\nconsecte
wangxl
2018/03/07
2.7K0
PHP转义Json里的特殊字符的函数
算法提高 新建Microsoft Word文档
问题描述   L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出的题目叫《新建Microsoft Word文档》吗?”,L大喜,一拍桌子,说:“好,就叫这个名字了。”   仔细观察,当你新建一个word文档时,会得到一个名为“新建 Microsoft Word 文档.doc”的文件,再新建一个,则名为“新建 Microsoft Word 文档(2).doc”,再新建,便是“新建 Microsoft Word 文档(3).doc”。不断新建,编号不断递增。倘若你现在新建了三个文档,然后删除了“新建 Microsoft Word 文档(2).doc”,再新建就又会得到一个“新建 Microsoft Word 文档(2).doc”。
AI那点小事
2020/04/20
5020
算法提高 新建Microsoft Word文档
Shell特殊字符
shell既是类Unix操作系统的命令解析器,用于解释执行用户输入的一连串命令,它类似于DOS下的command和后来Windows的cmd.exe。同时shell也是一种程序设计语言。作为命令解释型的脚本语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它预定义了各种环境变量,保留了一些关键字以及一些特殊字符的含义,并提供了许多在高级语言中才具有的控制结构,包括循环和分支判断。
恋喵大鲤鱼
2018/08/03
5.2K0
HTML特殊字符
HTML 原始码 显示结果 描述 &lt; < 小於号或显示标记 &gt; > 大於号或显示标记 &amp; & 可用於显示其它特殊字符 &quot; " 引号 &reg; ® 己注册 &copy; © 版权 &trade; ™ 商标 &ensp; 半方大的空白 &emsp; 全方大的空白 &nbsp; 不断行的空白
小小许
2018/09/20
3.7K0
Microsoft Word 2019 mac中文正式版(word mac)
Microsoft Office是由Microsoft(微软)公司开发的一套基于 Windows 操作系统的办公软件套装。Microsoft Office Word 是文字处理软件。常用组件有 Word、Excel、PowerPoint等。
Mac小小
2022/09/17
9970
MySQL 特殊字符
SQL 注释是用来在 SQL 语句中添加对代码的解释说明。SQL 支持两种类型的注释符号。
恋喵大鲤鱼
2023/10/12
9990
Microsoft office Word 下载安装教程
Word2010是一款文字处理办公软件,是Office2010的办公组件之一。可以编辑排版文字,可以做书、名片、杂志、报纸等目前,Word是世界上使用最多的办公软件之一总之,不管你在哪个公司工作,你都要留话。
用户10307898
2023/02/10
2.3K0
PHP:JSON字符串转换为中文,中文转换为JSON字符串
/** * 中文转换为JSON字符串 * @param $chinese_str 中文:可以包含中文字母数字 * @return string */ function json_encode($chinese_str) { $chinese_str = iconv('UTF-8', 'UCS-2', $chinese_str); $len = strlen($chinese_str) - 1; $str = ''; for ($i = 0; $i < $len; $i
用户8099761
2023/05/11
1.1K0
php格式怎么转换为pdf,PHP如何将将word文件转为pdf
PHP将word文件转为pdf的方法:首先修改【php.ini】,并重启环境;然后安装微软office套件;最后配置office组件服务即可。
全栈程序员站长
2022/08/26
5.5K0
php格式怎么转换为pdf,PHP如何将将word文件转为pdf
特殊字符乱码问题
1、使用标签 建议用(标签可以控制转换特殊字符): <html:text property=“instruction” readonly=“true” styleClass=“mylongreadonly” size=“32”/> <input name=“instruction” type=“hidden” value=”<mycim2:write name=“object” property=“instruction” filter=“true”/>” > <input name=“instruction” type=“hidden” value=”<bean:write name=“object” property=“instruction” filter=“true”/>” >
全栈程序员站长
2022/06/27
2.7K0
iOS去除特殊字符
// 清除特殊字符 + (NSString *)cleanSpecialCharacters:(NSString *)text { NSString *strResult = nil; NSMutableString *originString = [text mutableCopy]; NSCharacterSet *cs = [NSCharacterSet characterSetWithCharactersInString:@"~!@#$%^&*()+={}':;',[]\\.
Raindew
2019/05/17
3.3K0
使用python将word文档转换为PDF文档
对于windows系统的编程开发,微软一开始提供了基于VB语言的接口,后来又推出了.NET框架。对于word等offices套件的自动化操作,由于原生支持的特性,采用这些语言是最为方便且灵活的,唯一的缺点就是这些语言的学习成本相对较高。
生信修炼手册
2020/12/11
7.1K1
转义JavaScript特殊字符
大家可以举一反三,触类旁通,反正,双引号和单引号可以配合着使用,把我上面的案例看懂,你就能灵活的运用了。
IT工作者
2022/01/05
4.1K0
html格式转换word_html嵌入word
这种情况下载的word文档中,样式全乱了,当时参考资料为:http://lanhy2000.blog.163.com/blog/static/4367860820119198575552/
全栈程序员站长
2022/09/20
1.5K0
html格式转换word_html嵌入word

相似问题

可剔除的可排序的元件

12

剔除嵌套排序列表

11

可剔除的可排序表-空置的tbody

26

jQuery可排序不是一个函数

50

在可排序父列表中剔除可排序列表

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文