time_t与GMT格式互转

time_t Time::timeFromGMT(string gmt)
{
    char week[4];
    memset(week,0,4);
    char month[4];
    memset(month,0,4);
    tm date;
    sscanf(gmt.c_str(),"%3s, %2d %3s %4d %2d:%2d:%2d GMT",week,&date.tm_mday,month,&date.tm_year,&date.tm_hour,&date.tm_min,&date.tm_sec);
    date.tm_mon = getMonthByName(month);
    date.tm_wday = getWeekDayByName(week);
    date.tm_year = date.tm_year - 1900;
    return mktime(&date);
}

string Time::GMTStrFromTime(time_t time)
{
    char gmt[40];
    memset(gmt,0,40);
    tm* date = localtime(&time);
    sprintf(gmt,"%3s, %2d %3s %4d %02d:%02d:%02d GMT",getWeekDayName(date->tm_wday).c_str(),date->tm_mday,getMonthName(date->tm_mon).c_str(),date->tm_year+1900,date->tm_hour,date->tm_min,date->tm_sec);
    return string(gmt);
}

/**
* @brief [0-11]表示1到12月
* @param month
* @return
*/
int Time::getMonthByName(char* month)
{
if(strcmp(month,"Jan") == 0)
return 0;
if(strcmp(month,"Feb") == 0)
return 1;
if(strcmp(month,"Mar") == 0)
return 2;
if(strcmp(month,"Apr") == 0)
return 3;
if(strcmp(month,"May") == 0)
return 4;
if(strcmp(month,"Jun") == 0)
return 5;
if(strcmp(month,"Jul") == 0)
return 6;
if(strcmp(month,"Aug") == 0)
return 7;
if(strcmp(month,"Sep") == 0)
return 8;
if(strcmp(month,"Oct") == 0)
return 9;
if(strcmp(month,"Nov") == 0)
return 10;
if(strcmp(month,"Dec") == 0)
return 11;

return -1;
}

/**
* @brief [0-11]表示1到12月
* @param month
* @return
*/
string Time::getMonthName(int month)
{
switch(month)
{
case 0:return "Jan";
case 1:return "Feb";
case 2:return "Mar";
case 3:return "Apr";
case 4:return "May";
case 5:return "Jun";
case 6:return "Jul";
case 7:return "Aug";
case 8:return "Sep";
case 9:return "Oct";
case 10:return "Nov";
case 11:return "Dec";
default:return " ";
}
}

/**
* @brief [0-6]表示周日到周六
* @param wday
* @return
*/
int Time::getWeekDayByName(char* wday)
{
if(strcmp(wday,"Sun") == 0)
return 0;
if(strcmp(wday,"Mon") == 0)
return 1;
if(strcmp(wday,"Tue") == 0)
return 2;
if(strcmp(wday,"Wed") == 0)
return 3;
if(strcmp(wday,"Thu") == 0)
return 4;
if(strcmp(wday,"Fri") == 0)
return 5;
if(strcmp(wday,"Sat") == 0)
return 6;

return -1;
}

/**
* @brief [0-6]表示周日到周六
* @param wday
* @return
*/
string Time::getWeekDayName(int wday)
{
switch(wday)
{
case 1:return "Mon";
case 2:return "Tue";
case 3:return "Wed";
case 4:return "Thu";
case 5:return "Fri";
case 6:return "Sat";
case 0:return "Sun";
default:return " ";
}
}

时间: 2024-10-07 13:01:33

time_t与GMT格式互转的相关文章

Java与C#间json日期格式互转完美解决方案

http://blog.csdn.net/wilsonke/article/details/24362851 作用一种简单方便的数据传输方案,JSON已经成为替代XML的事实标准.然而在JSON中,时间(DateTime,Timestamp,Date等)格式一直没有很好地统一,当需要跨平台序列化/反序列化时,遇到不少麻烦.作者经过反复尝试,解决了C#与Java通过JSON进行时间传输的困难.C#解析Java/Javascript生成的JSON并不困难,但Java解析C#生成的JSON困难重重.下

properties和yaml在线格式互转

分享一个在线properties 与yml格式互转工具. 域名非常简单好记,地址:http://toyaml.com/ Spring Boot 整个应用程序只有一个配置文件,那就是 .properties 或 .yml 文件.因 Spring Boot 对每个配置项都有默认值.所以也可不配置.当然,我们也可以添加配置文件,用以覆盖其默认值. 如properties中一段内容为: 那么yaml格式则变成为: 可以看出 properties 是以逗号隔开,而 yaml 则换行+ tab 隔开,这里需

iOS dateformatter设置GMT格式时间--iOS开发系列---项目中成长的知识四

今天在项目中开始接手客户端的签名这个模块,签名这个会在项目结束过后再单独写一下自己的心得! 今天讲讲在签名的过程中我们需要向服务器传送一个Date值,格式要求是格林威治时间,也就是GMT时间! 格式要求是 22 Oct 2015 10:20:35 GMT 而我通过[NSDate Date]获取到的格式是2015-10-22 10:20:35 所以就上网搜寻答案 说的是通过[NSDate Date]这个获取到的时间就是GMT地区的,所以我就觉得是转格式的地方出问题了 但是经过一番尝试后,无论是转格

图像RGB2YUV与YUV2RGB格式互转介绍

1 YUV格式与RGB格式说明 由于不同国家的电视信号系统支持的图像格式不同,有YUV格式成像,也有RGB格式成像,因此为了保证兼容性,需要进行RGB与YUV格式的互转. 另外YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式,需要将RGB格式转为YUV格式.而当图像进行后期显示时,又需要将YUV转换为RGB域. 2 RGB格式转为YUV格式转换公式 将上述矩阵乘法展开,YUV(256 级别) 可以从8位 RGB 直接计算如下: Y = 0.299 R + 0.5

Office文档格式如何与PDF格式互转

Office文档格式与PDF互转是很多朋友比较关心的问题,特别是将Word的DOC文档转成PDF文档,或者把PDF转换成Word文档用的最为广泛.或许大家并不知道,除了PDF与Word文档相互转换外,PDF文档还可以转成其它一些文件格式,大家一起来瞧瞧吧. PDF文档之间的转换: 迅捷PDF转换器是一个PDF转Word的工具,支持PDF转换成Word.Excel.图片.HTML等等,并且还带有PDF切割.PDF合并.PDF解密.PDF压缩.PDF图片获取等功能.不但转换速度非常快,转换出来的效果

JS时间格式 GMT格式转换

JavaScript时间格式转换总结 1.当前系统区域设置格式(toLocaleDateString和toLocaleTimeString) 例子:(new Date()).toLocaleDateString() + " " + (new Date()).toLocaleTimeString()结果: 2008年1月29日 16:13:112.普通字符串(toDateString和toTimeString) 例子: (new Date()).toDateString() + &quo

【转】OpenCV与CxImage转换(IplImage)、IplImage QImage Mat 格式互转

最近由于在项目中用到了Opencv库,但是为了更好的显示图像还是使用了Cximage库,它可以快捷地存取.显示.转换各种图像.Opencv库用于高级图像处理与识别.为了使Cximage图像与Opencv图像交互,写了个Cximage转换到IplImage的类. OpenCV2CXimage.h #pragma once /* * 类说明:OpenCV图像与CXimage图像互转 * 用于OpenCV的图像与CXimage图像格式互转进行封装. OpenCV的图像位数必须是大等于8的整数倍,支持B

ios开发之NSDateFormatter,NSDate 与NSString日期转换,NSString任意格式互转

一般用java+oracle写的后台,可能给你返回的时间样式是这样的: 2014-01-20  13:24:33 看一下这个时间串是比较复杂,但是ios 的SDK已经为我们封装好了,把NSString 转换为 任意的NSDate 或者 NSString 使用NSDateFormatter 实现 + (NSString *)timeFromString:(NSString *)timeString { NSDateFormatter *formatter = [[NSDateFormatter a

日期格式数位工具类:日期格式互转

public final static String PATTERN = "yyyy-MM-dd"; public final static String PATTERN_TIME = "yyyy-MM-dd HH:mm:ss"; public static Date parseString(String date, String format) throws ParseException { SimpleDateFormat dateformat = new Si