update_server/internal/db/time.go
2026-06-10 20:51:17 +03:00

38 lines
684 B
Go

package db
import (
"database/sql"
"fmt"
"strings"
"time"
)
type rowScanner interface {
Scan(dest ...any) error
}
func formatTimestamp(value time.Time) string {
return value.UTC().Format(time.RFC3339)
}
func parseTimestamp(raw string) (time.Time, error) {
parsed, err := time.Parse(time.RFC3339, raw)
if err != nil {
return time.Time{}, fmt.Errorf("parse timestamp %q: %w", raw, err)
}
return parsed.UTC(), nil
}
func parseNullableTimestamp(raw sql.NullString) (*time.Time, error) {
if !raw.Valid || strings.TrimSpace(raw.String) == "" {
return nil, nil
}
parsed, err := parseTimestamp(raw.String)
if err != nil {
return nil, err
}
return &parsed, nil
}