UTC时间转本地日期时间的实现
2014-07-25 15:45
316 查看
根据时区,把UTC时间转换为本地时间。很简单,看代码吧
struct DATETIME { uint16 year; uint8 month; uint8 day; uint8 hours; uint8 minute; uint8 seconds; uint8 microsecond; DATETIME() { clear(); } void clear() { year = 1970; month = 1; day = 1; hours = 0; minute = 0; seconds = 0; microsecond = 0; } /*!< 根据指定时区转为当前日期和时间。Ex: 转为北京时间 -> transToLocal(8)*/ void transToLocal(int8 timezone) { uint8 nLastDayOfMonth = 0;//每个月的最后一天 if(timezone == 0) { return; } hours += timezone; if (hours > 23) { hours -= 24; day++; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: nLastDayOfMonth = 31; break; case 2: if (((0 == year % 4) && (0 != year % 100)) || (0 == year % 400)) { /*!< 闰年的2月有29天*/ nLastDayOfMonth = 29; } else { nLastDayOfMonth = 28; } break; case 4: case 6: case 9: case 11: nLastDayOfMonth = 30; break; default: return; } if (day > nLastDayOfMonth) { day = 1; if(month == 12) { month = 1; year++; } else { month++; } } } else if(hours < 0) { hours += 24; if(day == 1) { switch (month) { case 1: /*!< 处理1月1日*/ day = 31; month = 12; year--; return; case 3: case 5: case 7: case 8: case 10: case 12: nLastDayOfMonth = 31; break; case 2: if (((0 == year % 4) && (0 != year % 100)) || (0 == year % 400)) { nLastDayOfMonth = 29; } else { nLastDayOfMonth = 28; } break; case 4: case 6: case 9: case 11: nLastDayOfMonth = 30; break; default: return; } month--; day = nLastDayOfMonth; } else { day--; } } } };
相关文章推荐
- SQL Server本地时间和UTC时间的相互转换实现代码
- SQL Server本地时间和UTC时间的相互转换实现代码
- Java实现纪元秒和本地日期时间互换的方法【经典实例】
- SQL Server本地时间和UTC时间的相互转换实现代码
- Javascript实现日期时间的倒计时
- WEB应用中实现本地时间与服务器时间同步方案
- Mr.刘的一段格式化日期时间输出实现
- 地磅称量系统之(27~29)实现主界面显示用户的登录信息和日期时间星期的代码
- JSP中有关时间和日期类的使用与JSP中的字符替换函数 str_replace()实现
- [分享]精心收集的3款JavaScript实现的日期时间选择控件
- 以本地时间显示日期/时间
- Js 获取当前日期时间及其它操作实现代码
- 用javascript实现的日期时间输入控件
- 用javascript实现的日期时间输入控件
- delphi 关于DateTimePicker的一点问题(同时修改日期和时间的实现)
- UTC时间&本地时间
- Js 获取当前日期时间及其它操作实现代码
- 收集几个js实现的日期时间控件
- PHP - Manual手册 - XXII. Date/Time 日期/时间函数 - date格式化一个本地时间/日期
- 用js实现页面显示当前日期和时间的代码