- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
为什么此代码返回无效日期?
QLocale locale("es");
QDate date = locale.toDate("1-Jun-14", "d-MMM-yy");
如果调试语言环境变量,它会正确初始化为语言环境 es_ES,但不会返回日期并且 date.isValid()
返回 false。
最佳答案
我不知道为什么,但你必须在月份后面加上一个 .
(短版)。我尝试了以下代码:
QLocale locale("es");
qDebug() << locale.standaloneMonthName(6, QLocale::ShortFormat);
QDate date = locale.toDate("01-Jun.-14", "dd-MMM-yy");
qDebug() << date;
输出令人惊讶:
"Jun."
QDate("1914-06-01")
锁对我来说就像一个错误,如果我尝试将它与例如一起使用它会失败。德语语言环境。
更新: 好的,我知道了。这很令人困惑。您必须采用 locale.monthName
给出的简称。这是为了例如“君。” ES 和 DE 的“Juni”。这真的没有任何意义。在德国,“Juni”的简称是“Jun”。对于西类牙,我不知道。这是一个错误。
更新 2:我想我了解系统(至少对于德语语言环境)。如果全名大于 4 个字符(例如“Januar”),则缩写形式是真正的缩写形式(“Jan”)加上一个点(“Jan.”)。如果全名少于 4 个字符,则简称与全名完全相同(例如“Mai”)。但我不明白为什么要附加点,因为对于 EN 语言环境,没有附加点。
关于c++ - QLocale toDate 总是在 "es"语言环境上返回无效的 QDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091781/
我在验证价格时遇到问题。 接受价格示例:10,00/100,00/1.000,00 不接受:10/100/1000.00 代码,但是这个传递 100/10/1000.00 bool ok; QLo
在c++中,我曾经将整数值转换为巴西货币格式,如下所示: QLocale loc = QLocale::system(); QLocale brasil(QLocale::Portuguese); l
在 QLocale 中, 如何从语言名称中找到“两个字母的 ISO 639 语言代码”? 例如'English',它的双字母代码是:en。'Chinese',其二字代码为:zh 如果我知道语言名称,例
前提:我在 osx 上使用 qt5.7 我已经在 系统偏好设置 - 语言和区域 - 高级中更改了小数点分隔符code> 使用逗号: 我在通过 QSettings 存储/恢复 QLocale 值时遇到问
在 Qt 5.9.0 中,QTextToSpeech类提供了对文本到语音引擎的便捷访问。 QTextToSpeech 有一个 Qt 示例 here . 如何更改语言环境并编写其他语言(非英语)? 我试
问题: 我有一个基于 QT 的多平台(win、mac、*nix)应用程序,它可以解析包含十进制数字的 ascii 文件。 解析是使用各种不同的代码片段完成的,这些代码片段使用 qt 字符串、c++ 标
我正在尝试使用 QLocale 检测当前系统语言: QLocale::Language sysLangId = QLocale::system().language(); 但是,它无法正常工作。我在应
我需要经常测试我的应用程序翻译成非英语语言,而为了做这个简单的检查而改变整个操作系统语言是非常不舒服的。例如,如何使用环境变量更改 Qt 检测到的系统语言?或使用命令行参数。 我尝试更改LANG、LA
我正在尝试查找给定 QLocale::Country 的国家/地区代码值(value)。在手册中我只找到了这个函数,它执行类似的操作:QLocale::name . QString QLocale::
我正在开发的应用程序将在许多国家推出,需要支持他们的语言。我一直在回顾我的代码并替换以下的每个实例: QString::number() 和 QString().toDouble() 与 QLocal
我正在尝试构建 QtDropbox 以在我自己的 visual studio 项目中使用。 QtDropbox 当然使用 Qt,我将其包含在项目中(如图所示)。 我的问题是它找不到 #include
为什么此代码返回无效日期? QLocale locale("es"); QDate date = locale.toDate("1-Jun-14", "d-MMM-yy"); 如果调试语言环境变量,它
如何找到当前事件的QLocale?我们可以使用 QLocale.system() 找到默认的系统区域设置,但我想要类似 QLocale.current() 的东西,以检查我尝试进行的区域设置更改实际工
我正在开发一个 Python 脚本,它将在名为 QtiPlot 的应用程序中运行。我搜索了 Qtiplot 的 Python API 文档,它使用 PyQt 4。我将我的脚本编码如下: #! /usr
我是一名优秀的程序员,十分优秀!