...
1
2
3 package uvm
4
5 import (
6 "fmt"
7
8 hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2"
9 "golang.org/x/sys/windows"
10 )
11
12
13 var utcTimezone = &hcsschema.TimeZoneInformation{
14 StandardName: "Coordinated Universal Time",
15 DaylightName: "Coordinated Universal Time",
16 StandardDate: &hcsschema.SystemTime{},
17 DaylightDate: &hcsschema.SystemTime{},
18 }
19
20
21
22 func getTimezone() (*hcsschema.TimeZoneInformation, error) {
23 var tz windows.Timezoneinformation
24 _, err := windows.GetTimeZoneInformation(&tz)
25 if err != nil {
26 return nil, fmt.Errorf("failed to get time zone information: %w", err)
27 }
28 return tziToHCSSchema(&tz), nil
29 }
30
31
32 func tziToHCSSchema(tzi *windows.Timezoneinformation) *hcsschema.TimeZoneInformation {
33 return &hcsschema.TimeZoneInformation{
34 Bias: tzi.Bias,
35 StandardName: windows.UTF16ToString(tzi.StandardName[:]),
36 StandardDate: &hcsschema.SystemTime{
37 Year: int32(tzi.StandardDate.Year),
38 Month: int32(tzi.StandardDate.Month),
39 DayOfWeek: int32(tzi.StandardDate.DayOfWeek),
40 Day: int32(tzi.StandardDate.Day),
41 Hour: int32(tzi.StandardDate.Hour),
42 Second: int32(tzi.StandardDate.Second),
43 Minute: int32(tzi.StandardDate.Minute),
44 Milliseconds: int32(tzi.StandardDate.Milliseconds),
45 },
46 StandardBias: tzi.StandardBias,
47 DaylightName: windows.UTF16ToString(tzi.DaylightName[:]),
48 DaylightDate: &hcsschema.SystemTime{
49 Year: int32(tzi.DaylightDate.Year),
50 Month: int32(tzi.DaylightDate.Month),
51 DayOfWeek: int32(tzi.DaylightDate.DayOfWeek),
52 Day: int32(tzi.DaylightDate.Day),
53 Hour: int32(tzi.DaylightDate.Hour),
54 Second: int32(tzi.DaylightDate.Second),
55 Minute: int32(tzi.DaylightDate.Minute),
56 Milliseconds: int32(tzi.DaylightDate.Milliseconds),
57 },
58 DaylightBias: tzi.DaylightBias,
59 }
60 }
61
View as plain text