#!/usr/bin/env python3
import sys
import re
from datetime import datetime, timedelta, timezone
for line in sys.stdin:
if not line.strip(): continue
time_string = line.strip()
epoch = datetime(1970, 1, 1, tzinfo=timezone.utc)
ticks, offset = re.match(r'^/Date\((\d+)([+-]\d{4})?\)/$', time_string).groups()
utc_dt = epoch + timedelta(milliseconds=int(ticks))
print(utc_dt, utc_dt.strftime('%Z'))
if offset:
offset = int(offset)
# http://w...content-available-to-author-only...a.org/documentation/odata-version-2-0/json-format
# says offset is minutes (an error?)
dt = utc_dt.astimezone(timezone(timedelta(minutes=offset)))
print(dt, dt.strftime('%Z'))
# but it looks like it could be HHMM
hours, minutes = divmod(abs(offset), 100)
if offset < 0:
hours, minutes = -hours, -minutes
dt = utc_dt.astimezone(timezone(timedelta(hours=hours, minutes=minutes)))
print(dt, dt.strftime('%Z'))
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwppbXBvcnQgc3lzCmltcG9ydCByZQpmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhLCB0aW1lem9uZQoKZm9yIGxpbmUgaW4gc3lzLnN0ZGluOgogICAgaWYgbm90IGxpbmUuc3RyaXAoKTogY29udGludWUKICAgIHRpbWVfc3RyaW5nID0gbGluZS5zdHJpcCgpCiAgICBlcG9jaCA9IGRhdGV0aW1lKDE5NzAsIDEsIDEsIHR6aW5mbz10aW1lem9uZS51dGMpCiAgICB0aWNrcywgb2Zmc2V0ID0gcmUubWF0Y2gocideL0RhdGVcKChcZCspKFsrLV1cZHs0fSk/XCkvJCcsIHRpbWVfc3RyaW5nKS5ncm91cHMoKQogICAgdXRjX2R0ID0gZXBvY2ggKyB0aW1lZGVsdGEobWlsbGlzZWNvbmRzPWludCh0aWNrcykpCiAgICBwcmludCh1dGNfZHQsIHV0Y19kdC5zdHJmdGltZSgnJVonKSkKICAgIGlmIG9mZnNldDoKICAgICAgIG9mZnNldCA9IGludChvZmZzZXQpCiAgICAgICAjIGh0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLm9yZy9kb2N1bWVudGF0aW9uL29kYXRhLXZlcnNpb24tMi0wL2pzb24tZm9ybWF0CiAgICAgICAjIHNheXMgb2Zmc2V0IGlzIG1pbnV0ZXMgKGFuIGVycm9yPykKICAgICAgIGR0ID0gdXRjX2R0LmFzdGltZXpvbmUodGltZXpvbmUodGltZWRlbHRhKG1pbnV0ZXM9b2Zmc2V0KSkpCiAgICAgICBwcmludChkdCwgZHQuc3RyZnRpbWUoJyVaJykpCiAgICAgICAjIGJ1dCBpdCBsb29rcyBsaWtlIGl0IGNvdWxkIGJlIEhITU0KICAgICAgIGhvdXJzLCBtaW51dGVzID0gZGl2bW9kKGFicyhvZmZzZXQpLCAxMDApCiAgICAgICBpZiBvZmZzZXQgPCAwOgogICAgICAgICAgaG91cnMsIG1pbnV0ZXMgPSAtaG91cnMsIC1taW51dGVzCiAgICAgICBkdCA9IHV0Y19kdC5hc3RpbWV6b25lKHRpbWV6b25lKHRpbWVkZWx0YShob3Vycz1ob3VycywgbWludXRlcz1taW51dGVzKSkpCiAgICAgICBwcmludChkdCwgZHQuc3RyZnRpbWUoJyVaJykp
L0RhdGUoMTQwMjM2ODk2Nzc5OCswOTAwKS8KL0RhdGUoMTQwNTk2MTc0MzAwMCswMTAwKS8KL0RhdGUoMTQwNTk2MTc0MzAwMSkvCi9EYXRlKDE0MDU5NjE3NDMwMDIrMDAwMCkvCi9EYXRlKDE0MDU5NjE3NDMwMDMtMDAwMCkvCi9EYXRlKDE0MDU5NjE3NDMwMDQtMDEwMCkvCi9EYXRlKDE0MDU5NjE3NDMwMDUtMDAxMCkvCi9EYXRlKDE0MDU5NjE3NDMwMDYtMDEzMCkvCi9EYXRlKDExOTg5MDg3MTcwNTYtMDcwMCkv
/Date(1402368967798+0900)/
/Date(1405961743000+0100)/
/Date(1405961743001)/
/Date(1405961743002+0000)/
/Date(1405961743003-0000)/
/Date(1405961743004-0100)/
/Date(1405961743005-0010)/
/Date(1405961743006-0130)/
/Date(1198908717056-0700)/