@@ -734,16 +734,33 @@ function dtutils_string.build_substitute_list(image, sequence, variable_string,
734
734
735
735
local labels = get_colorlabels (image )
736
736
737
- local eyear , emon , eday , ehour , emin , esec , emsec
737
+ local datetime_taken = " "
738
+ local use_millisecs = false
738
739
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
739
755
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+)$" )
741
757
else
742
758
emsec = " 0"
743
759
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+)$" )
745
761
end
746
762
763
+
747
764
local version_multi = # image :get_group_members () > 1 and image .duplicate_index or " "
748
765
749
766
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,
781
798
eyear , -- EXIF.YEAR
782
799
string.sub (eyear , 3 ), -- EXIF.YEAR.SHORT
783
800
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
786
803
eday , -- EXIF.DAY
787
804
ehour , -- EXIF.HOUR
788
805
" " , -- EXIF.HOUR.AMPM
0 commit comments