91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Windows時間與Unix時間怎么轉換

發布時間:2022-12-06 09:45:26 來源:億速云 閱讀:273 作者:iii 欄目:服務器

這篇文章主要介紹了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


def expire_time(expire_mouths: int) -> int:
    '''用戶賬號過期邏輯
    '''
    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


def nt_2_unix(nt_time):
    '''winows時間轉換為unix時間
    '''
    return datetime.datetime(1601, 1, 1) + datetime.timedelta(microseconds=nt_time//10)


if __name__ == '__main__':
    print(expire_time(6))
    print(nt_2_unix(1.3281000774125e+17))

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乌珠穆沁旗| 平南县| 永年县| 渭南市| 息烽县| 宝丰县| 肥乡县| 吉首市| 大庆市| 乌兰察布市| 准格尔旗| 甘孜县| 长治县| 义马市| 酒泉市| 绥中县| 鹤壁市| 天门市| 登封市| 玉山县| 兰溪市| 长乐市| 西峡县| 黎川县| 呼和浩特市| 安义县| 北辰区| 日喀则市| 高安市| 姜堰市| 科尔| 大悟县| 怀柔区| 永州市| 资讯| 桦南县| 郴州市| 藁城市| 登封市| 安塞县| 乌兰县|