Написал следующий код.
void SettingsClock::on_dateTimeEdit_dateTimeChanged(const QDateTime &dateTime)
{
//system("date -s \"19 APR 2015 11:14:00\"");
QString datetime;
datetime = "date -s ";
datetime += "\"";
datetime += dateTime.toString("dd MMM yy hh:mm:ss");
datetime += "\"";
qDebug() << datetime;
const char *data = datetime.toAscii();
qDebug() << data;
system(data);
system("hwclock -w");
}
Ничего особенного, просто установка часов. Но когда пытаюсь установить часы получаю date -s "02 янв 00 00:00:00". Вот этот янв портит все. Линукс не хочет его принимать пишет
invalid date '02 \321\217\320\275\320\262 00 00:00:00'
Как можно заменит янв на Jan?
Решение если кому надо:
QString datetime;
datetime = "date -s ";
datetime += "\"";
QLocale loc(QLocale::English, QLocale::UnitedStates);
datetime += loc.toString(dateTime, "dd MMM yy hh:mm:ss");
datetime += "\"";
const char *data = datetime.toAscii();
system(data);
system("hwclock -w");
Проблема заключается в том, что у Вас используется неправильная локализация. Вам нужно ее установить вполне конкретной. Смотрите пример:
#include <QCoreApplication>
#include <QDateTime>
#include <QDebug>
#include <QLocale>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<QDateTime::currentDateTime().toString("dd MMM yy hh:mm:ss"); // неправильный вывод
QLocale loc(QLocale::English, QLocale::UnitedStates);
qDebug()<<loc.toString(QDateTime::currentDateTime(), "dd MMM yy hh:mm:ss"); // вывод в американской локализации
return a.exec();
}
Вообще, данный вопрос является дубликатом вот этого: link
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости