在Tsung,我怎样才能在milisec中获得发布消息的时间?

时间:2015-12-09 06:26:18

标签: erlang tsung erlang-escript

在Tsung,我想在milisec中发布消息时间,我在下面试过,但只能在Sec中获得时间。

<setdynvars sourcetype="eval" code='fun({Pid,DynVars})->
{{Year,Month,Day},{Hour,Minute,Second}} = erlang:localtime(),
io_lib:format(&apos;~4..0B-~2..0B-~2..0B::~2..0B:~2..0B:~4..0B\n&apos;, [Year,Month,Day,Hour,Minute,Second]) end.'>
<var name="time" />
</setdynvars> 

<request subst="true">

                <mqtt type="publish" topic="xxx" qos="0" retained="true">%%_time%%</mqtt>

            </request>

1 个答案:

答案 0 :(得分:0)

你可以使用

1> Time_milli = fun() -> 
       Um = erlang:system_time(milli_seconds),
       {D,T} = calendar:gregorian_seconds_to_datetime(Um div 1000 + 719528*86400)
       {D,T,Um rem 1000}
   end.
#Fun<erl_eval.20.54118792>
2> Time_milli().                                                                
{{2015,12,9},{8,13,53},40}

719528*86400是1 0 1 0 0 0和1970 1 1 0 0 0之间的秒数。

注意:system_time不是单调的,如果您需要此功能,可以使用erlang:monotonic_time / 1,但在这种情况下,您无法转换为日期或在不同节点之间进行比较。