簡體   English   中英

iPhone iOS 是否支持 UNIX C 語言環境?

[英]Does the iPhone iOS support UNIX C locales?

我真正想要做的是以正確的順序使用 strftime("%x") 格式化日期。 在大多數平台上,調用 setlocale("") 就足夠了。 在 iPhone iOS CI 上不斷收到 !@#$ 美國日期。

那么,iPhone iOS C 不支持語言環境嗎?

看到類似的問題: Android NDK 支持語言環境嗎?

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

ANSI C localeconv()在 iPhone iOS C 中不起作用:

struct lconv *localeconv(void);

獲取用戶名的標准 Unix 方式也不適用於 Android。

char *p = getenv("USER");

所以需要使用 Swift 端來獲取 locale 信息。

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 函數並將它們存儲在那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM