必威体育Betway必威体育官网
当前位置:首页 > IT技术

localtime时间使用

时间:2019-11-02 01:13:20来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

localtime

linux环境,应用需要记录KPI的数据统计,代码中获取时间函数localtime(),asctime查看,获取事件为东八区的时间,与当前系统时间一致,而从另一台服务器远程ssh 启动此应用,获取的时间为UTC 的时间,并未换算为东八区时间;

# ssh  10.118.203.140 "/time"
[email protected]'s password:
asctime(now) is  Mon Dec 18 00:43:25 2017
# ./time
asctime(now) is  Mon Dec 18 13:43:34 2017


代码示例:

#include <stdio.h>
#include <string>
#include <time.h>
#include <string.h>
#include <iOStream>

using namespace std;
using std::string;

int main()
{
    time_t t=time(NULL);
    struct tm *now;
    now = localtime(&t);
    cout << "asctime(now) is  " << asctime(now) << endl;
    return 0;
}


通过man 查看localtime()的时间获取,与环境变量timezone相关;

# ssh  10.118.203.140 "env;/home/lax/time"
[email protected]'s password: 
selinux_ROLE_requestED=
SHELL=/bin/bash
SSH_CLIENT=10.118.203.140 39588 22
SELINUX_USE_CURRENT_RANGE=
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
USER=root
MAIL=/var/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PWD=/root
KDE_IS_PRELINKED=1
LANG=en_US.UTF-8
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
LOADEDMODULES=
KDEDIRS=/usr
SELINUX_LEVEL_REQUESTED=
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
LOGNAME=root
QTLIB=/usr/lib64/qt-3.3/lib
CVS_RSH=ssh
SSH_CONNECTION=10.118.203.140 39588 10.118.203.140 22
MODULESHOME=/usr/share/Modules
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_broken_FILENAMES=1
module=() {  eval `/usr/bin/modulecmd bash $*`
}
_=/bin/env

asctime(now) is  Mon Dec 18 00:53:29 2017

ssh 查看env里确实没有TZ的时区设置;

# ssh  10.118.203.140 "TZ='Asia/Shanghai';export TZ;env;/home/lax/time"
[email protected]'s password: 
SELINUX_ROLE_REQUESTED=
SHELL=/bin/bash
SSH_CLIENT=10.118.203.140 39681 22
SELINUX_USE_CURRENT_RANGE=
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
USER=root
MAIL=/var/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PWD=/root
KDE_IS_PRELINKED=1
LANG=en_US.UTF-8
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
TZ=Asia/Shanghai
LOADEDMODULES=
KDEDIRS=/usr
SELINUX_LEVEL_REQUESTED=
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
LOGNAME=root
QTLIB=/usr/lib64/qt-3.3/lib
CVS_RSH=ssh
SSH_CONNECTION=10.118.203.140 39681 10.118.203.140 22
MODULESHOME=/usr/share/Modules
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
module=() {  eval `/usr/bin/modulecmd bash $*`
}
_=/bin/env

asctime(now) is  Mon Dec 18 14:09:58 2017

在ssh的session里,先预先设置TZ的环境变量,再运行应用,获取的时间与服务器上时间一致。

文章最后发布于: 2017-12-18 19:26:28

相关阅读

nuxt百度地图引入基础使用,百度地图初始化,行政区划划分

如何在nuxt项目中使用百度地图 进入百度地图API选择javascriptAPI,按照流程注册账号获取ak,复制ak按照页面提示的,需要引入script标

使用padding-bottom和margin-bottom实现两栏等高布局

声明:以下均为个人见解,若有错误请指出。效果预览:<!DOCTYPE html> <html> <head> <title>demo</title> <style type="tex

京东白条优惠券兑换码怎么获取和使用呢?

京东白条优惠券兑换码怎么使用以及注意事项有哪些?京东优惠券形式多种多样,那么京东白条优惠券兑换码指的是什么又是怎么使用的呢?

Log4j的作用和使用步骤

作用:Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录 why:只要集成了Log4j,就可以在方法或者配置文件中加入打

使用route-map为路由设置标记

课题内容:使用route-map为路由设置标记拓扑:将R2的环回口重分布直连进入OSPF在R1和R4上将OSPF重分布进入EIGRP使用route-m

分享到:

栏目导航

推荐阅读

热门阅读