> t := time.Unix(1334289777, 0)
this is all you need to do.
no, you do not. that would be time in the future, not time converted
to UTC. the "seconds elapsed since January 1, 1970 UTC" (what t.Unix
returns) is the same for two identical times regardless of which time
zone they reference (provided you're not moving close to the speed of
light).
time.Unix(1334289777, 0) is one second earlier than
time.Unix(1334289778, 0) everywhere in the world.
again, for a given time t the "seconds since epoch start" are the
same, regardless of which timezone you convert the time to.
fmt.Println(name, offset, t.Unix(), t.Unix()+int64(offset))