Hi Guys, I would like to propose a better time widget/handling as an upcoming goal, but before that wanted to share my small thoughts and see if anyone have any comments. To repeat, would be great to get some feedback/discussion before 9th of October, just in time to be one of the next goals :) As most people are aware of, I have a problem with the current way F-Spot is handling times. Consider the following (extreme) scenario. I am living in Australia, but am send on a 6 months contract to America. My trip goes through Hawaii, where I spend one week taking some photos. As soon as I get to my destination in America, I fix the timezone on my laptop so it shows the correct time. I then starts to import all the photos from my camera. A bit later I realize that the time on my camera is still Australia time. So we have three different timezone to worry about here, and which one will F-Spot use. Right now, it will change (read mangle) the time to be UTC based upon the computers US time. Imagine also sending this photo to a friend who will use Windows or Image Viewer (Eye of Gnome) to check when the photo was taken. To handle this scenario, we need (I think) the following questions answered during import. 1) What is the current time where you took the photo (Photo's timezone) 2) What is the current time in your camera (camera's timezone) (Default to same as photos timezone) 3) What is the current time where your computer is (computers timezone). (Probably not needed) The last question can probably be assumed to be don't care, since you are only interested in an offset to UTC anyway. What I propose is that A) The time in the EXIF part always shows the photo's local time (DateTime : Photo was modified at this time, local time DateTimeOriginal : Photo was taken at this time, local time DateTimeDigitized : Photo was scanned at this time, local time) B) The time in the XMP should always be local time with TimeZone info. (xmp:CreateDate : Photo was taken at this time, UTC time xmp:ModifyDate : Photo was modified at this time, UTC time) C) Internally the timestamp should be UTC. Example: EXIF : DateTimeOriginal = 2004-10-23T12:00:00 XMP : xmp:CreateDate = 2004-10-23T12:00:00-06:00 F-Spot : sqlite = 2004-10-23T18:00:00 What is needed: =============== 1) Two extra input fields in Import gui (photo and camera timezone) 2) Modify (correct) change date gui 3) Ensure timestamp is written correctly to both EXIF and XMP (with timezone). 4) During import, if XMP timestamp exists, use it, otherwise use EXIF together with the extra timezone informations. Any comments on this ? /Bengt From the XMP specification: --------------------------- xmp:CreateDate Date Internal The date and time the resource was originally created. xmp:ModifyDate Date Internal The date and time the resource was last modified. NOTE: The value of this property is not necessarily the same as the file’s system modification date because it is set before the file is saved. Date A date-time value which is represented using a subset of ISO RFC 8601 formatting, as described in http://www.w3.org/TR/NOTE-datetime. The following formats are supported: YYYY YYYY-MM YYYY-MM-DD YYYY-MM-DDThh:mmTZD YYYY-MM-DDThh:mm:ssTZD YYYY-MM-DDThh:mm:ss.sTZD YYYY = four-digit year MM = two-digit month (01=January) DD = two-digit day of month (01 through 31) hh = two digits of hour (00 through 23) mm = two digits of minute (00 through 59) ss = two digits of second (00 through 59) s = one or more digits representing a decimal fraction of a second TZD = time zone designator (Z or +hh:mm or -hh:mm) The use of local times, using a time zone designator of +hh:mm or -hh:mm instead of NOTE: Z, is recommended to promote human understanding. For example, if you know a file was saved at noon on October 23 a timestamp of 2004-10-23T12:00:00-06:00 is understandable, while 2004-10-23T18:00:00Z is confusing.
Attachment:
signature.asc
Description: This is a digitally signed message part