usb/dev-mtp: use GDateTime for formatting timestamp for objects

The GDateTime APIs provided by GLib avoid portability pitfalls, such
as some platforms where 'struct timeval.tv_sec' field is still 'long'
instead of 'time_t'. When combined with automatic cleanup, GDateTime
often results in simpler code too.

Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-04-30 12:59:06 +01:00
parent 39683553f9
commit 970bc16f60

View File

@ -772,12 +772,9 @@ static void usb_mtp_add_str(MTPData *data, const char *str)
static void usb_mtp_add_time(MTPData *data, time_t time)
{
char buf[16];
struct tm tm;
gmtime_r(&time, &tm);
strftime(buf, sizeof(buf), "%Y%m%dT%H%M%S", &tm);
usb_mtp_add_str(data, buf);
g_autoptr(GDateTime) then = g_date_time_new_from_unix_utc(time);
g_autofree char *thenstr = g_date_time_format(then, "%Y%m%dT%H%M%S");
usb_mtp_add_str(data, thenstr);
}
/* ----------------------------------------------------------------------- */