Made Datetime parsing more reliable

This commit is contained in:
Christophe Dumez
2010-05-01 17:40:14 +00:00
parent 89fbfdbd1b
commit ce817836c0

View File

@@ -423,9 +423,15 @@ QString misc::magnetUriToHash(QString magnet_uri) {
} }
QString misc::boostTimeToQString(const boost::optional<boost::posix_time::ptime> boostDate) { QString misc::boostTimeToQString(const boost::optional<boost::posix_time::ptime> boostDate) {
if(!boostDate) return tr("Unknown"); if(!boostDate || !boostDate.is_initialized() || boostDate->is_not_a_date_time()) return tr("Unknown");
struct std::tm tm = boost::posix_time::to_tm(*boostDate); struct std::tm tm = boost::posix_time::to_tm(*boostDate);
return QDateTime::fromTime_t(mktime(&tm)).toString(Qt::DefaultLocaleLongDate); time_t t = mktime(&tm);
if(t < 0)
return tr("Unknown");
QDateTime dt = QDateTime::fromTime_t(t);
if(dt.isNull() || !dt.isValid())
return tr("Unknown");
return dt.toString(Qt::DefaultLocaleLongDate);
} }
// Replace ~ in path // Replace ~ in path