ios - iPhone iOS 支持 UNIX C 语言环境吗?

标签 ios c iphone locale

我真正想做的是以正确的顺序使用 strftime("%x") 格式化日期。在大多数平台上,调用 setlocale("") 就足够了。在 iPhone iOS C 上,我不断收到!@#$ 美国日期。

那么,iPhone iOS C 不支持语言环境吗?

查看类似问题:Does the Android NDK support locales?

最佳答案

没有。 setlocale()strftime() 在 iPhone iOS C 中不起作用,只是 NULL。

并且 ANSI C localeconv() 在 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 函数并将它们存储在那里。

关于ios - iPhone iOS 支持 UNIX C 语言环境吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483978/

相关文章:

ios - 如何从另一个 uitableviewcell 中的 tableview 导航?

ios - 使用 Core Graphics 在 UIImageView 上绘制一个矩形

c - 带有编译器特定关键字的单元测试 C

ios - 编码和解码函数如何使用 NSCoding 在 Swift 3 中工作?

iphone - 自定义单元格,只有最后一个单元格获得 [layoutSubviews]?

ios - MFMailComposeViewController View 闪烁问题

ios - 有什么方法可以在 xcode 中以十六进制显示 plist 数值吗?

c - ISO C++ 禁止指针和整数之间的比较 [-fpermissive]| [C]

c - name.exe 已停止回溯工作

iphone - UIWebView 到 View Controller ?