主要用于时间相关的操作和转换,包括:

  • 从Unix时间戳解析日期和时间。
  • 获取和调整当前时间。
  • 提供多种时间戳获取方式以适应不同场景(如秒或毫秒级的时间戳)。

 

将Unix时间戳转换为UTC时间和本地时间:

  • 通过函数 UnixToUTC 或直接计算,将一个Unix时间戳(以秒为单位)转换为1970年开始的UTC时间。
  • 将UTC时间进一步调整为本地时区时间。

 

; MsgBox % SubStr(1668502819058, 1, 10)  ; 只需要前10位数字

; 腾讯获取当前时间API:http://vv.video.qq.com/checktime?otype=json

MsgBox, % UnixToUTC(1668502819058)

UnixToUTC(unixTime) {
  time := 1970
  time += SubStr(unixTime, 1, 10), s
  diff -= A_NowUTC, h
  time += diff, h
  Return time
}

; Tebayaki+ahk2 提供的 取Unix 时间戳   这个返回10位数。      回答:少除几个0不就好了
DllCall("GetSystemTimeAsFileTime", "uint64*", currentTime)
; MsgBox % Round(currentTime / 10000000) - 11644473600

/*
UnixToUTC(unixTime) {
  unixTimeX := SubStr(unixTime, 1, 10)
  if unixTimeX is integer
  {
    time := 1970
    time += unixTimeX, s
    diff -= A_NowUTC, h
    time += diff, h
  }
  Return time
}
*/

/*
MsgBox % UnixToUTC(1668502426)

UnixToUTC(unixTime){
  time:=1970
  time+=unixTime, s
  return time
}
*/

unixTime := SubStr(1668502819058, 1, 10)
time := 1970
time += unixTime, s
utcTime := time

diff -= A_NowUTC, h
time += diff, h
localTime := time

MsgBox, % "utc: " . utcTime . "`n本地时区: " . localTime

; 淘宝:http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp
; 京东:https://api.m.jd.com/client.action?functionId=queryMaterialProducts&client=wh5

MsgBox % r := A_NowUTC
r -= 19700101000000, s
msgbox , %  r * 1000 + A_MSec

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。