@@ -734,16 +734,33 @@ function dtutils_string.build_substitute_list(image, sequence, variable_string,
734734
735735 local labels = get_colorlabels (image )
736736
737- local eyear , emon , eday , ehour , emin , esec , emsec
737+ local datetime_taken = " "
738+ local use_millisecs = false
738739 if dt .preferences .read (" darktable" , " lighttable/ui/milliseconds" , " bool" ) and is_api_9_1 then
740+ use_millisecs = true
741+ end
742+
743+ if image .exif_datetime_taken and image .exif_datetime_taken ~= " " then
744+ datetime_taken = image .exif_datetime_taken
745+ else
746+ if use_millisecs then
747+ datetime_taken = " 0000:00:00 00:00:00.0"
748+ else
749+ datetime_taken = " 0000:00:00 00:00:00"
750+ end
751+ end
752+
753+ local eyear , emon , eday , ehour , emin , esec , emsec
754+ if use_millisecs then
739755 eyear , emon , eday , ehour , emin , esec , emsec =
740- string.match (image . exif_datetime_taken , " (%d+):(%d+):(%d+) (%d+):(%d+):(%d+)%.(%d+)$" )
756+ string.match (datetime_taken , " (%d+):(%d+):(%d+) (%d+):(%d+):(%d+)%.(%d+)$" )
741757 else
742758 emsec = " 0"
743759 eyear , emon , eday , ehour , emin , esec =
744- string.match (image . exif_datetime_taken , " (%d+):(%d+):(%d+) (%d+):(%d+):(%d+)$" )
760+ string.match (datetime_taken , " (%d+):(%d+):(%d+) (%d+):(%d+):(%d+)$" )
745761 end
746762
763+
747764 local version_multi = # image :get_group_members () > 1 and image .duplicate_index or " "
748765
749766 local replacements = {dtutils_string .get_basename (image .film .path ),-- ROLL.NAME
@@ -781,8 +798,8 @@ function dtutils_string.build_substitute_list(image, sequence, variable_string,
781798 eyear , -- EXIF.YEAR
782799 string.sub (eyear , 3 ), -- EXIF.YEAR.SHORT
783800 emon , -- EXIF.MONTH
784- os.date (" %B" , exiftime2systime (image . exif_datetime_taken )), -- EXIF.MONTH.LONG
785- os.date (" %b" , exiftime2systime (image . exif_datetime_taken )), -- EXIF.MONTH.SHORT
801+ os.date (" %B" , exiftime2systime (datetime_taken )), -- EXIF.MONTH.LONG
802+ os.date (" %b" , exiftime2systime (datetime_taken )), -- EXIF.MONTH.SHORT
786803 eday , -- EXIF.DAY
787804 ehour , -- EXIF.HOUR
788805 " " , -- EXIF.HOUR.AMPM
0 commit comments