首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ICU DateFormatSymbols::getMonth()

ICU DateFormatSymbols::getMonth()
EN

Stack Overflow用户
提问于 2016-07-05 17:47:20
回答 1查看 41关注 0票数 1

我正在做一个项目,该项目利用ICU的库来处理各种语言的日期信息。我在一个函数中使用了以下代码:

代码语言:javascript
复制
UErrorCode uec;
Locale locale(language); // e.g with language = "en"
DateFormatSymbols symbs( locale, uec );
int32_t count;
auto months = symbs.getMonths(count);
for( int32_t i = 0 ; i < count; ++i ){
  // some code handling month names, no ICU;
}
// more code that does not use ICU

count的值应该由getMonths()方法设置为获得的月数,例如,当语言为英语时为12。

问题是,当我多次调用同一个函数时,count有时是12,有时是0,这似乎是不可预测的。更糟糕的是,相同的代码在同事的PC上的行为是不同的,当我添加与symbs无关的代码行时,行为也会发生变化,例如在函数中的某个地方创建UnicodeString

我怀疑DateFormatSymbols的初始化或区域设置出了问题,但我真的搞不清楚是什么原因。谁能告诉我为什么会发生这种情况,以及可能如何修复它,以便我始终在count中获得预期的月数

EN

回答 1

Stack Overflow用户

发布于 2016-07-20 04:03:08

您需要初始化uec

UErrorCode uec;

然后你需要检查它的结果

DateFormatSymbols symbs( locale, uec ); if (U_FAILURE(uec)) { … // handle error …  }

请参阅error handling

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38200197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档