تحويل QString المحتوي على الطابع الزمني بعد ذلك إلى QDateTime

StackOverflow https://stackoverflow.com/questions/4329877

  •  29-09-2019
  •  | 
  •  

سؤال

أواجه مشكلة في مشكلة بسيطة للغاية: أريد الحصول على QDatetime من QString يحتوي على طابع زمني. حصلت على الطابع الزمني من Postgresql ، لكن هذا لا يهم. هنا هو الرمز الذي لا يعمل:

QString timestamp = "2010-10-09 19:21:46+02:00";
QString format = "YYYY-MM-DD HH:MM:SSTZD";
QDateTime dt = QDateTime::fromString(timestamp, format);
qDebug() << dt.toString(); // outputs empty string

يجب أن يكون هناك شيء واضح للغاية أنا في عداد المفقودين. شكرًا!

هل كانت مفيدة؟

المحلول

كان هناك خطأان كنت أرتكب. لا يوجد TZD في مواصفات التنسيق ، لذلك قمت بإزالة معلومات المنطقة الزمنية لأنني لا أحتاجها في تطبيقي من خلال القيام:

timeStamp.chop(6);

ثم استخدم التنسيق التالي للحصول على QDateTime. لاحظ أحرف التنسيق الصغير:

QDateTime createdAt = QDateTime::fromString(timeStamp, "yyyy-MM-dd HH:mm:ss");

شكرا للجميع أعلاه للمساعدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top