Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将unix时间转换为TOD时钟(STCK)?_C_Assembly_Sas_Mainframe_Zos - Fatal编程技术网

如何将unix时间转换为TOD时钟(STCK)?

如何将unix时间转换为TOD时钟(STCK)?,c,assembly,sas,mainframe,zos,C,Assembly,Sas,Mainframe,Zos,请你帮我把epoch Unix时间转换成TOD时钟(STCK)8字节。 e、 g: 十六进制纪元时间='175BC71AFE2'X 十进制纪元时间=1605184368610 我想把这个十进制数转换成STCK(TOD时钟时间) Store Clock指令STCK获取TOD时钟并将其存储在8字节字段中。位位置31大约每1.048576秒递增一次。下面是一个示例,它提供了将STCK转换为当前日期的方法 关于将当前时间转换为TOD值以使用Rexx比较日志流中的时间戳的类似问题,请参见此答案 我不确定您

请你帮我把epoch Unix时间转换成TOD时钟(STCK)8字节。 e、 g:

  • 十六进制纪元时间='175BC71AFE2'X
  • 十进制纪元时间=1605184368610
  • 我想把这个十进制数转换成STCK(TOD时钟时间)

  • Store Clock指令STCK获取TOD时钟并将其存储在8字节字段中。位位置31大约每1.048576秒递增一次。下面是一个示例,它提供了将STCK转换为当前日期的方法

    关于将当前时间转换为TOD值以使用Rexx比较日志流中的时间戳的类似问题,请参见此答案

    我不确定您的应用程序是什么,但也要注意,有一条STCKE指令使用扩展格式

    为方便起见,请在此报价

    This works for me in a Rexx procedure:
    
    Tod = (epoc*4096000000)+9048018124800000000
    
    TOD (Time-of-Day in S360, S370, S390 & z/Arch IBM's archs) is a 
    64bit counter whose Bit position 31 is incremented every 1.048576 
    seconds, starting at 1900-01-01.
    
    So, 2**32/1.048576 = 4096000000 = 1 sec.
    
    9048... is the difference between 1900-01-01 and epoch 1970-01-01 in TOD units.
    

    有关STCK和STCKE格式的更多信息,请参阅第7-182页的。

    您能用余数除法吗?不确定unix时间是否也计算闰秒,这会使事情复杂化。是的,我可以。我用的是C语言,我的问题是余数,我需要余数的STCK。不确定STCK是什么,但我假设TOD的意思是小时分秒。您可以使用
    div
    。我尝试执行与此处显示的完全相同的操作,但我的问题是epoch是以秒为单位的,当除以1000时,提醒被截断。两件事。首先,什么是操作系统。第二,你想做什么。比较数值。储存它们?了解应用程序可能有助于更好地帮助您1)Z/OS V2.4 2)其应用程序在Z/OS Connect EE中监视API请求程序的两个时间点之间的运行时间。我需要计算两个STCK时间之间的差值以获得经过的时间。经过的时间是将Unix历元时间转换为STCK格式,但不会得到秒数。因为历元是以秒为单位的,所以您要查找的百分之一百分辨率。您是在记录时间并进行比较,还是在使用z/OS Connect的日志/度量数据?您可以调用一些汇编程序服务,比如STCKCONV,它可以使您将两个STCK时间转换为十进制格式进行比较。