libgimp: Modernize setting "Exif.Image.DateTime"

by using g_date_time_format, and additionally also set the timezone
(even though using that is less common in Exif, it can't hurt for us
to add it).
This commit is contained in:
Jacob Boerema 2025-08-22 15:16:49 -04:00
parent 922e409045
commit 1a96fb55f9

View file

@ -130,23 +130,25 @@ gimp_image_metadata_save_prepare (GimpImage *image,
if (gimp_update_metadata ())
{
g_snprintf (buffer, sizeof (buffer),
"%d:%02d:%02d %02d:%02d:%02d",
g_date_time_get_year (datetime),
g_date_time_get_month (datetime),
g_date_time_get_day_of_month (datetime),
g_date_time_get_hour (datetime),
g_date_time_get_minute (datetime),
g_date_time_get_second (datetime));
datetime_buf = g_date_time_format (datetime, "%Y:%m:%d %T");
gexiv2_metadata_try_set_tag_string (g2metadata,
"Exif.Image.DateTime",
buffer, &error);
datetime_buf, &error);
if (error)
{
g_warning ("%s: failed to set metadata '%s': %s\n",
G_STRFUNC, "Exif.Image.DateTime", error->message);
g_clear_error (&error);
}
g_clear_pointer (&datetime_buf, g_free);
/* Timezone is separate */
datetime_buf = g_date_time_format (datetime, "\%:z");
gexiv2_metadata_try_set_tag_string (g2metadata,
"Exif.Photo.OffsetTime",
datetime_buf, NULL);
g_clear_pointer (&datetime_buf, g_free);
gexiv2_metadata_try_set_tag_string (g2metadata,
"Exif.Image.Software",