ios - iPhone iOS 是否支持 UNIX C 语言环境?
问题描述
我真正想做的就是使用 strftime("%x") 以正确的顺序格式化日期。在大多数平台上,调用 setlocale("") 就足够了。在 iPhone iOS CI 上不断获取 !@#$ 美国日期。
那么,iPhone iOS C 不支持语言环境吗?
请参阅类似问题:Android NDK 是否支持语言环境?
解决方案
不setlocale()
,并且strftime()
在 iPhone iOS C 中不起作用,只是 NULL。
ANSI Clocaleconv()
在 iPhone iOS C 中不起作用:
struct lconv *localeconv(void);
此外,获取用户名的标准 Unix 方式在 Android 中也不起作用。
char *p = getenv("USER");
所以你需要使用 Swift 端来获取语言环境信息。
let RFC3339DateFormatter = DateFormatter()
RFC3339DateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
RFC3339DateFormatter.dateFormat = "yyyy-MM-dd"
let LocaleDateFormatter = DateFormatter()
LocaleDateFormatter.locale = Locale(identifier: Locale.preferredLanguages[0]) //NSLocale.current.identifier)
LocaleDateFormatter.dateStyle = .short
let DateString = LocaleDateFormatter.string(from: RFC3339DateFormatter.date(from: "3333-11-22")!)
let LocaleCountry = NSLocale.current.regionCode
let LocaleLanguage = Locale.preferredLanguages[0]
let LocaleCurrency = NSLocale.current.currencyCode
let LocaleShortDateTimePattern = DateString
let LocaleDecimalSeparator = NSLocale.current.decimalSeparator
let LocaleThousandSeparator = NSLocale.current.groupingSeparator
let LocaleThousandGrouping = "3;0",/* ThousandGrouping locale looks not be implemented by Apple*/
let LocaleNegativePrefix = NumberFormatter().negativePrefix
let LocaleNegativeSuffix = NumberFormatter().negativeSuffix
let Operator = NSUserName()
然后要在 C 代码中使用,使用 Swift 语言环境数据作为参数调用 C 函数并将它们存储在那里。
推荐阅读
- node.js - 使用 node-imap,我如何将电子邮件移动到另一个文件夹?
- angular - 在 azure 中部署时未在 cookie 中设置防伪令牌
- angular - ngx-datatable cellClass 作为 templateRef 中的函数
- php - 突出显示搜索词
- c# - 读取 MassTransit Response-Request 中的响应标头
- elasticsearch - Elasticsearch 限制映射,以便只插入单个实体而不是数组
- excel - 对日期相同但时间不同的单元格进行排序
- javascript - 检查嵌套数组是否包含 JavaScript 中另一个嵌套数组的任何元素
- kotlin - Kotlin 协程:并发执行节流
- c++ - SFML 错误中的字符串输入