d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
0
|
package main |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
1
|
|
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
2
|
import ( |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
3
|
"fmt" |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
4
|
"log" |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
5
|
"os" |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
6
|
"strconv" |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
7
|
"time" |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
8
|
) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
9
|
|
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
10
|
func main() { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
11
|
if len(os.Args) < 2 { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
12
|
fmt.Println("Usage: unixtime timestamp...") |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
13
|
os.Exit(-1) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
14
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
15
|
|
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
16
|
for _, a := range os.Args[1:] { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
17
|
fmt.Println(a, "->", unixtime(a)) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
18
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
19
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
20
|
|
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
21
|
func unixtime(s string) string { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
22
|
if isUnixTime(s) { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
23
|
ns, _ := strconv.ParseInt(s, 10, 64) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
24
|
t := time.Unix(0, ns).UTC() |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
25
|
return t.Format("2006-01-02T15:04:05.999999Z") |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
26
|
} else { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
27
|
t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
28
|
if err != nil { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
29
|
log.Fatalln(err.Error()) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
30
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
31
|
|
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
32
|
return strconv.FormatInt(t.UnixNano(), 10) |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
33
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
34
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
35
|
|
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
36
|
func isUnixTime(s string) bool { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
37
|
for _, r := range s { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
38
|
if r < '0' || r > '9' { |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
39
|
return false |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
40
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
41
|
} |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
42
|
return true |
d88ffe6 |
Jakob Wakeling |
2024-05-23 12:42:30 |
43
|
} |
|
|
|
44
|
|