Как сконвертировать windows nt time format в обычную дату в golang?

Пользователь

от kameron , в категории: Golang , 5 месяцев назад

Как сконвертировать windows nt time format в обычную дату в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от olen.shanahan , 5 месяцев назад

@kameron 

Для конвертации формата времени Windows NT в обычную дату в Go вы можете использовать функцию time.Unix() в сочетании с делением на 100 наносекунд и добавлением временной зоны.


Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package main

import (
	"fmt"
	"time"
)

func main() {
	ntTime := 131685007982856134
	unixTime := ntTime/10000000 - 11644473600
	convertedTime := time.Unix(int64(unixTime), 0).In(time.UTC)

	fmt.Println(convertedTime)
}


Обратите внимание, что формула в этом примере имеет учет смещения времени Windows NT 1601 года относительно Unix Epoch (1970 год). Кроме того, предполагается, что временная зона для конвертированного времени - UTC.