我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Windows时间与Unix时间怎么转换

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Windows时间与Unix时间怎么转换

这篇文章主要介绍了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时间怎么转换”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网服务器栏目。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Windows时间与Unix时间怎么转换

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Windows时间与Unix时间怎么转换

这篇文章主要介绍了Windows时间与Unix时间怎么转换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Windows时间与Unix时间怎么转换文章都会有所收获,下面我们一起来看看吧。首先,我们在读取并解析用l
2022-12-06

怎么将Java时间转换成unix时间戳

怎么将Java时间转换成unix时间戳?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体内容如下import java.text.DateFormat; import java
2023-05-30

Java怎么与Unix时间戳进行转换

今天就跟大家聊聊有关Java怎么与Unix时间戳进行转换,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方法实现 /** * Java将Unix时间戳转换成指定格式日期字符串
2023-05-30

python unix时间戳与正常时间转

有时候业务需要,需要把正常的时间格式与unix时间戳格式进行转换。      在python中转化方式如下,直接利用time中的函数:#! /usr/bin/env python#coding:utf-8import sys,os,reim
2023-01-31

怎么用php将时间转unix时间

这篇文章主要介绍“怎么用php将时间转unix时间”,在日常操作中,相信很多人在怎么用php将时间转unix时间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用php将时间转unix时间”的疑惑有所帮助!
2023-07-04

Unix、UTC、GPS时间戳及转换

UTC时间 UTC时间的英文全称:Universal Time Coordinated,中文名称:协调世界时。俗的理解为,这个时间是全世界通用的,即全世界都公用的一个时间。可以认为格林威治时间就是时间协调时间(GMT=UTC),格林威治时间
2023-08-18

如何将 Unix 时间戳转换为 MySQL 时间戳值?

MySQL 借助 FROM_UNIXTIME() 函数将 Unix 时间戳转换为时间戳数据类型值。示例mysql> Select FROM_UNIXTIME(1508622563);+---------------------------
2023-10-22

php时间如何转unix时间戳

这篇文章主要介绍“php时间如何转unix时间戳”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php时间如何转unix时间戳”文章能帮助大家解决问题。使用 time() 函数获取当前时间的 Unix
2023-07-05

php时间转unix时间戳的代码怎么写

这篇文章主要讲解了“php时间转unix时间戳的代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php时间转unix时间戳的代码怎么写”吧!使用strtotime函数strtotim
2023-07-05

利用Java怎么将时间与时间戳进行转换

本篇文章给大家分享的是有关利用Java怎么将时间与时间戳进行转换,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。时间戳(timestamp),一个能表示一份数据在某个特定时间之前
2023-05-31

javascript怎么转换时间

这篇文章主要介绍了javascript怎么转换时间,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。javascript转换时间的方法:创建一个【util.js】文件,在里面重新
2023-06-14

C语言Unix时间戳与本地时间的转化

本篇内容主要讲解“C语言Unix时间戳与本地时间的转化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言Unix时间戳与本地时间的转化”吧!前言我们平常说时间都说的几点几分几秒,星期几,但是在
2023-06-06

pandas怎么实现datetime64与unix时间戳互转

本文小编为大家详细介绍“pandas怎么实现datetime64与unix时间戳互转”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas怎么实现datetime64与unix时间戳互转”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
2023-07-02

PHP中怎么将时间转换成时间戳

本篇内容主要讲解“PHP中怎么将时间转换成时间戳”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中怎么将时间转换成时间戳”吧!PHP中有两种时间表示方式,一种是时间戳,一种是日期格式。时间戳
2023-07-05

编程热搜

目录