MakeDateFromTime creates a Date from the specified time. The timezone-relative date is used.
(t time.Time)
| 111 | // MakeDateFromTime creates a Date from the specified time. The |
| 112 | // timezone-relative date is used. |
| 113 | func MakeDateFromTime(t time.Time) (Date, error) { |
| 114 | sec := t.Unix() |
| 115 | _, offset := t.Zone() |
| 116 | sec += int64(offset) |
| 117 | |
| 118 | days := sec / secondsPerDay |
| 119 | if sec < 0 && sec%secondsPerDay != 0 { |
| 120 | // If days are negative AND not divisible by secondsPerDay, |
| 121 | // we need to round down. |
| 122 | // e.g. for 1969-12-30 01:00, the division will round to -1 |
| 123 | // but we want -2. |
| 124 | days-- |
| 125 | } |
| 126 | d, err := MakeDateFromUnixEpoch(days) |
| 127 | return d, err |
| 128 | } |
| 129 | |
| 130 | var errDateOutOfRange = pgerror.WithCandidateCode(errors.New("date is out of range"), pgcode.DatetimeFieldOverflow) |
| 131 |
no test coverage detected