mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-06-17 11:30:11 +02:00
34 lines
880 B
Go
34 lines
880 B
Go
package database
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// formatSQLiteUTC stores instants as UTC RFC3339 for consistent SQLite reads/writes.
|
|
func formatSQLiteUTC(t time.Time) string {
|
|
return t.UTC().Format(time.RFC3339Nano)
|
|
}
|
|
|
|
// sqliteEpochGE returns SQL comparing column to param as Unix seconds (timezone-safe).
|
|
func sqliteEpochGE(column, op string) string {
|
|
return "strftime('%s', " + column + ") " + op + " strftime('%s', ?)"
|
|
}
|
|
|
|
// ParseRFC3339Time parses API/query timestamps (RFC3339 or RFC3339Nano).
|
|
func ParseRFC3339Time(value string) (time.Time, error) {
|
|
value = strings.TrimSpace(value)
|
|
if value == "" {
|
|
return time.Time{}, errors.New("empty time value")
|
|
}
|
|
if t, err := time.Parse(time.RFC3339Nano, value); err == nil {
|
|
return t.UTC(), nil
|
|
}
|
|
t, err := time.Parse(time.RFC3339, value)
|
|
if err != nil {
|
|
return time.Time{}, err
|
|
}
|
|
return t.UTC(), nil
|
|
}
|