(current-time-string (time-to-seconds (org-2ft "<2017-10-31>"))) "Sun Oct 29 17:00:00 2017"
This seems wrong In org-2ft (org-parse-time-string s nil t) The t means use UTC instead of Emacs local time. However, Org translates <now> into (float-time), which is in Emacs localtime. 1. SCHEDULED>"<now>" compares a UTC time against a local time. 2. Either org-2ft should be fixed to be localtime, or <now> should be (float-time) in UTC. I don't know how Org internals works, but my experience so far has been that Emacs and *nix in general is very naive about timezones; a naked timestamp is assumed to be localtime if it does not have accompanying timezone information. Thus, it seems to be more correct to change org-2ft to parse times as localtime. However, I don't know if UTC timestamps are assumed by other parts of Org internals, in which case fixing <now> (float-time) would be safest.