The TZ module in Core could also be helpful here. y On Sat, Mar 6, 2010 at 4:53 AM, Luca de Alfaro wrote: > I need to convert a time, expressed in yyyy/mm/dd hh:mm:ss form, into a > floating point. > The conversion has to be done in GMT, but the real point is, the conversion > must NOT change due to daylight savings time. > > Ocaml seems to have only one conversion function, however: Unix.mktime, > which takes a time, and makes a float in the local time zone. > > No problem, I thought: I will simply add 3600 if the conversion result > tells me that dst is active (and then convert for the difference between GMT > and winter time). > NO! This does not work! Look at the two conversions below. The tmrec > differs by one hour. > However, the two floating point numbers returned are identical, and > tm_isdst is set to true in both cases! > > This means that I have no way of using the standard libraries to convert a > time expressed in yyyy/mm/ss hh:mm:ss to a float! > > This is a basic operation, and it is a big let down that there is no such > library function in Ocaml. > I will have to write it from basic principles. > Anybody has a better suggestion? > > Many thanks, > > Luca > > # let tmrec = {tm_sec = 38; tm_min = 57; tm_hour = 3; tm_mday = 11; tm_mon > = 2; tm_year = 107; tm_wday = 0; tm_yday = 0; tm_isdst = false};; > # Unix.mktime tmrec;; > - : float * Unix.tm = > (1173610658., > {tm_sec = 38; tm_min = 57; tm_hour = 3; tm_mday = 11; tm_mon = 2; tm_year > = 107; tm_wday = 0; tm_yday = 69; tm_isdst = true}) > > # let tmrec = {tm_sec = 38; tm_min = 57; tm_hour = 2; tm_mday = 11; tm_mon > = 2; tm_year = 107; tm_wday = 0; tm_yday = 0; tm_isdst = false};; > # Unix.mktime tmrec;; > - : float * Unix.tm = > (1173610658., > {tm_sec = 38; tm_min = 57; tm_hour = 3; tm_mday = 11; tm_mon = 2; > tm_year = 107; tm_wday = 0; tm_yday = 69; tm_isdst = true}) > > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > >