内核中读取UTC时间

    记录这个知识点的原因是因为项目中需要保存充电日志,因此,趁着这个机会,深入了解一下Linux的时间系统。

UTC:(Universal Time Coordinated) 协调世界时的缩写

        内核中,获取UTC时间。

#include <linux/timer.h>

#include <linux/timex.h>

#include <linux/rtc.h>

struct timex  txc;
struct rtc_time tm;
do_gettimeofday(&(txc.time));
rtc_time_to_tm(txc.time.tv_sec,&tm);
printk(“UTC time :%d-%d-%d %d:%d:%d \n”,tm.tm_year+1900,tm.tm_mon+1, tm.tm_mday,tm.tm_hour,tm.tm_min,tm.tm_sec);

要转成本地时间,1.读取本地的时区,然后做相应的转换。

                       2.传递给上层,在做转换。

Technorati 标签: 内核 UTC

时间: 2024-11-02 21:25:06

内核中读取UTC时间的相关文章

Linux与Windows中的UTC时间

Linux与Windows中的UTC时间 先介绍几个术语 UTC 协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“Temps Universel Cordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治平时. GMT 格林威治标准时间(中国大陆翻译:格林尼治平均时间或格林尼治标准时间,台.港.澳翻译:格林威治标准时间:英语:Greenwich Mean Time,GMT)是指位

Linux内核中获取时间并转换成本地时区时间

下面的函数get_time_str实现了在内核中获取本地时间的功能. 他首先获取utc时间,然后根据系统的时区timezone转换成本地时间, 最后将时间以"2014-11-02 21:14:08"的字符串的形式输出到output缓冲区中. 函数的返回值,是输出的字符串的长度. #include <linux/time.h> #include <linux/timex.h> #include <linux/rtc.h> int get_time_st

在往oracle中插数据时,如何处理excel读取的时间空值

//若从excel中读取的时间值为空值时,做如下转换 string YDKGSJ = string.Empty; if (dbdata.Rows[i]["约定开工时间"].ToString() == "") { YDKGSJ = "null,"; } else { YDKGSJ = "to_date('" + Convert.ToDateTime(dbdata.Rows[i]["约定开工时间"]) + &q

在linux内核中获得比jiffies精度更高的时间值【转】

转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的时间间隔,但因为驱动程序的生命期只限于系统的运行期 (uptime),所以也是可行的.驱动程序利用jiffies的当前值来计算不同事件间的时间间隔. 硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tick rate),每一个周期称作一个tick(节拍).

Linux中UTC时间与CST时间不一致的问题

为了学习,在虚拟机中最小化安装了CentOS6.7,使用时发现文件的时间戳跟实际时间不一致,用date查看时间的时候显示: 2016年 01月 01日 星期五 21:11:43 CST 然后用date -u 显示的时间是正确的: 2016年 01月 01日 星期五 13:12:20 UTC 为了解决这个问题,在网上找了一些解决方法,记录如下. 世界协调时间(Universal Time Coordinated,UTC): 如果没有安装ntp服务器,则需要先执行以下命令: yum -y insta

linux内核中的时间接口

时钟中断:是硬件中的定时器以固定的时间产生一次中断. 时钟中断频率:1s中的时钟中断次数: 我们可以通过更改相应的配置,来改变一个系统的时钟中断频率. 先来看看X86平台上的时钟中断频率: 有以上可知,内核通过使用 HZ 宏来表示在内核中的时钟频率为CONFIG_HZ,当然我们就可以通过改变 相应的体系结构中的config文件中CONFIG_HZ的值,来调整内核中的时钟频率值. 如果 CONFIG_HZ=1000的话,内核通过时钟频率所能测出的时间的分辨率为 1ms. linux系统中,通过使用

Python中如何把一个UTC时间转换为本地时间

需求: 将20141126010101格式UTC时间转换为本地时间. 在网上搜了好长时间都没有找到完美的解决方案.有的引用了第三方库,这就需要在现网安装第三方的软件.这个是万万不可的.因为真实环境不一定允许你随便使用root用户安装Python模块.最终找到了一个不用外部模块的完美解决方案,放在这里分享给大家. 1 #!/usr/bin/python 2 3 import os,sys,datetime,time 4 from datetime import datetime 5 import

[原创]Java项目统一UTC时间方案

Java项目统一UTC时间方案 作者:Gods_巨蚁 引言 近期团队的个别项目在进行框架升级后,部分时间值存在8小时误差,原因是错误的将数据库中的时间数据理解成了UTC时间(旧版本认为是北京时间) 考虑到未来项目对于时间理解的一致性,我决定将项目统一为使用UTC时间,经调研,形成本文 mysql数据库时区及时间时间类型说明 数据库时区 mysql数据库拥有时区设置,默认使用系统时区 可通过如下语句查询当前时区 show variables like '%time_zone%'; 下图为我个人机器

Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解

在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; /***second***/susecond_t tv_usec;/***microsecond***/}到底microsecond是毫秒还是微秒?? 1秒=1000毫秒(3个零),1秒=1000 000微秒(6个零),1秒=1000 000 000纳秒(9个零),1秒=1000 000 000