also use a context for the rollback, which is a bit cleaner since it only results in one 'defer', rather than N from the loop
this failed on my machine due to the unexported 'loc' field of the time structure - it was nil in one and set to a ton of tiemzone data in the other. instead let's just compare the unix timestamp value and zero it out for the struct comparison.