久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Windows時間與Unix時間怎么轉換

165次閱讀
沒有評論

共計 2295 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章主要介紹了 Windows 時間與 Unix 時間怎么轉換的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 Windows 時間與 Unix 時間怎么轉換文章都會有所收獲,下面我們一起來看看吧。

首先,我們在讀取并解析用 ldap 協議查詢出來的 AD 域用戶賬號過期時間,將 Window NT 轉換為 Unix 時間;

其次,在創建用戶的時候,根據提交的工單信息,需要為新賬號指定一個過期時間,將當前 Unix 時間加上幾個月的過期時間,賦值給 accountExpires;

最后,當有賬號已經過期,使用不了的時候,用戶會提交賬號重新激活工單,自動為該賬號續期;【一:賬號正常過期,續 6 個月之類的;二:重復提交創建賬號申請,不處理發企業微信通知告知已經有賬號了,告知對方賬號創建和最后修改時間,讓對方查看企業微信消息 / 郵件,如果沒有找到賬號密碼消息,請直接提交密碼找回工單 (將收到賬號和新密碼)】

golang 原生 time 包的 Duration 時間段

僅僅支持最大為 290 年的時間段,而 windows nt 時間為 1601 年開始,到現今是 420 多年,根本無法適配,在不采用第三方庫的情況下該如何處理呢?犯迷糊了,怎么將 unix 時間轉換為 nt 時間,則反過來計算只需要計算出正確的 unix 時間戳然后將時間戳轉換為時間類型即可。

// maxDuration Duration = 1 63 - 1
fmt.Println(time.Duration(1 63 - 1))
2562047h57m16.854775807s
292.47111872146  年 

Window NT 時間轉換為 Unix 時間

// Window NT  時間轉換為  Unix  時間
func NtToUnix(ntTime int64) (unixTime time.Time) {ntTime = (ntTime - 1.1644473600125e+17) / 1e+7
 return time.Unix(int64(ntTime), 0)
}

測試

func TestNtTimeToDatetime(t *testing.T) {
 //  取當前時間轉換為 nt 時間
 timestamp := time.Now().Unix()*1e+7 + 1.1644473600125e+17
 fmt.Println(timestamp)
 //  將 nt 時間轉換為 unix 時間
 res := NtToUnix(timestamp)
 fmt.Println(res)
}

Unix 時間轉換為 Window NT 時間

// Unix  時間轉換為  Window NT  時間
func UnixToNt(expireTime time.Time) (ntTimestamp int64) {ntTimestamp = expireTime.Unix()*int64(1e+7) + int64(1.1644473600125e+17)
 return
}

測試

func TestUnixTimeToNtTime(t *testing.T) {
 //  當前時間
 unixTime := time.Now()
 //  當前時間往后推遲 6 個月
 unixTime.AddDate(0, 6, 0)
 res := UnixToNt(unixTime)
 fmt.Println(res)
}

用戶過期期限處理

//  用戶過期期限處理   月份為 -1  則過期時間為永久; 否則   當前時間往后推遲 expireMouths 個月
func expireTime(expireMouths int64) (expireTimestamp int64) {
 expireTimestamp = 9223372036854775807
 if expireMouths != -1 {expireTimestamp = util.UnixToNt(time.Now().AddDate(0, int(expireMouths), 0))
 return
}

python 中的寫法

import datetime
import time
from dateutil.relativedelta import relativedelta

 expire_timestamp = 9223372036854775807  if expire_mouths != -1:  expire_timestamp = unix_2_nt( datetime.datetime.now() + relativedelta(months=expire_mouths))  return expire_timestamp
def unix_2_nt(expire_time: datetime) -  int:   Unix  時間轉換為  Window NT  時間    return time.mktime(expire_time.timetuple()) * 1e+7 + 1.1644473600125e+17
   return datetime.datetime(1601, 1, 1) + datetime.timedelta(microseconds=nt_time//10)
 print(expire_time(6))  print(nt_2_unix(1.3281000774125e+17))

關于“Windows 時間與 Unix 時間怎么轉換”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Windows 時間與 Unix 時間怎么轉換”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計2295字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 若尔盖县| 旬邑县| 东丰县| 榆社县| 襄垣县| 公主岭市| 玉林市| 广平县| 潼关县| 巩义市| 天水市| 陆川县| 涞水县| 吴川市| 宣武区| 宝清县| 镇赉县| 北海市| 古浪县| 手游| 铜山县| 会理县| 乌苏市| 文安县| 九龙城区| 阿巴嘎旗| 台前县| 公安县| 海丰县| 尉氏县| 玉林市| 石台县| 南靖县| 来安县| 长春市| 巴塘县| 惠安县| 定边县| 凤台县| 晴隆县| 盘山县|