16.4 数字和日期

本地化程序中的另外一个方面是格式化数字和日期,对于数字,基于printf的wxString格式化函数已经在内部实现了针对不同地域的本地化,如下面的代码所示:

wxString::Format(wxT("%.1f") , myDouble);

这里,Format函数将会根据你设置的locale帮你处理地域差异. 而下面的日期格式化代码:

wxDateTime t = wxDateTime::Now();
wxString str = t.Format();

Format函数也将根据你设置的locale进行合适的格式化操作.在wxWidgets手册中时间和日期函数格式化的相关部分详细的介绍了怎样根据自定义的格式进行时间和日期的格式化.在这种情况下,你只需要将格式化文本使用_()宏包括起来,然后针对不同的语言翻译成对应的本地格式就可以了.

如果你想知道当前设置的locale对应的数字分割符或者别的一些本地化相关的值,可以使用wxLocale的GetInfo函数,比如下面的代码返回当前设置的locale下数字的10进制分割符:

wxString info = m_locale.GetInfo(wxLOCALE_THOUSANDS_SEP,
                                   wxLOCALE_CAT_NUMBER) ;