How to convert local time string to UTC?

datetime, localtime, python, utc

Solution

Thanks @rofly, the full conversion from string to string is as follows:

import time
time.strftime("%Y-%m-%d %H:%M:%S", 
              time.gmtime(time.mktime(time.strptime("2008-09-17 14:04:00", 
                                                    "%Y-%m-%d %H:%M:%S"))))

My summary of the `time`/`calendar` functions:

`time.strptime` string --> tuple (no timezone applied, so matches string)

`time.mktime` local time tuple --> seconds since epoch (always local time)

`time.gmtime` seconds since epoch --> tuple in UTC

and

`calendar.timegm` tuple in UTC --> seconds since epoch

`time.localtime` seconds since epoch --> tuple in local timezone

Problem

How do I convert a datetime string in local time to a string in UTC time? I'm sure I've done this before, but can't find it and SO will hopefully help me (and others) do that in future. Clarification: For example, if I have `2008-09-17 14:02:00` in my local timezone (`+10`), I'd like to generate a string with the equivalent `UTC` time: `2008-09-17 04:02:00`. Also, from http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/, note that in general this isn't possible as with DST and other issues there is no unique conversion from local time to UTC time.

Original source

Related problems