python

Getting specific timezone timestamp from time string

시간을 거스르는자 2015. 1. 20. 14:20

import pytz

import datetime

import calendar


s = '2012/01/10 23:00'

def get_timezone_offset_ms(timezone_name):

    try:

        tz = pytz.timezone(timezone_name)

    except Exception as e:

        return 0

    timezone_offset = datetime.datetime.now(tz).strftime('%z')

    offset_sign = timezone_offset[0:1]

    offset_hour = int(offset_sign+timezone_offset[1:3])

    offset_min = int(offset_sign+timezone_offset[3:])

    offset_ms = offset_hour*60*60*1000 + offset_min*60*1000

    return offset_ms


def get_pst_timestamp_from_time_string(time_string, time_format):

    pst_timezone_name = "America/Los_Angeles"

    tz_offset_ms = get_timezone_offset_ms(pst_timezone_name)

    t = datetime.datetime.strptime(time_string, time_format)

    return long(calendar.timegm(t.timetuple())*1000) - tz_offset_ms


get_pst_timestamp_from_time_string(s, '%Y/%m/%d %H:%M')