g_free (new_format);
g_free (new_str);
- if (!error)
- {
- ret = g_date_time_new_local (year,
- month,
- day,
- hour,
- minute,
- seconds);
-
- /* possible glib bug
- * returns a valid date also if day/month values are out of range */
- if (g_date_time_get_year (ret) != year
- || g_date_time_get_month (ret) != month
- || g_date_time_get_day_of_month (ret) != day
- || g_date_time_get_hour (ret) != hour
- || g_date_time_get_minute (ret) != minute
- || g_date_time_get_seconds (ret) != seconds)
- {
- g_date_time_unref (ret);
- ret = NULL;
- }
+ if (!error) {
+ /* la funzione g_date_time_new_local ritorna un'ora sbagliata solamente con la data 27/05/1979 */
+ ret = g_date_time_new_utc (year,
+ month,
+ day,
+ hour,
+ minute,
+ seconds);
+
+ /* possible glib bug
+ * returns a valid date also if day/month values are out of range */
+ if (g_date_time_get_year(ret) != year ||
+ g_date_time_get_month(ret) != month ||
+ g_date_time_get_day_of_month(ret) != day ||
+ g_date_time_get_hour(ret) != hour ||
+ g_date_time_get_minute(ret) != minute ||
+ g_date_time_get_seconds(ret) != seconds) {
+ g_date_time_unref (ret);
+ ret = NULL;
}
+ }
return ret;
}