@ -104,7 +104,8 @@ func (t Time) WallTime() time.Time {
// MarshalJSON formats t for JSON as if it were a time.Time.
// We format Time this way for backwards-compatibility.
// This is best-effort only. Time does not survive a MarshalJSON/UnmarshalJSON round trip unchanged.
// Time does not survive a MarshalJSON/UnmarshalJSON round trip unchanged
// across different invocations of the Go process. This is best-effort only.
// Since t is a monotonic time, it can vary from the actual wall clock by arbitrary amounts.
// Even in the best of circumstances, it may vary by a few milliseconds.
func ( t Time ) MarshalJSON ( ) ( [ ] byte , error ) {
@ -113,7 +114,8 @@ func (t Time) MarshalJSON() ([]byte, error) {
}
// UnmarshalJSON sets t according to data.
// This is best-effort only. Time does not survive a MarshalJSON/UnmarshalJSON round trip unchanged.
// Time does not survive a MarshalJSON/UnmarshalJSON round trip unchanged
// across different invocations of the Go process. This is best-effort only.
func ( t * Time ) UnmarshalJSON ( data [ ] byte ) error {
var tt time . Time
err := tt . UnmarshalJSON ( data )
@ -124,6 +126,6 @@ func (t *Time) UnmarshalJSON(data []byte) error {
* t = 0
return nil
}
* t = Now ( ) . Add ( - time . Since ( tt ) )
* t = baseMono . Add ( tt . Sub ( baseWall ) )
return nil
}