在Linux中经常会遇到时间和字符串相互转化的情形,有两个函数专门对应相应的转化。

1、时间转字符串函数strftime

函数原型:size_t strftime(char *s,size_t maxsize,char *format,conststruct tm *timeptr)

strftime函数对timeptr指向的tm结构所代表的时间和日期进行格式编排,其结果放在字符串s中。该字符串的长度被设置为(最少)maxsize个字符。格式字符串format用来对写入字符串的字符进行控制,它包含着将被传送到字符串里去的普通字符以及编排时间和日期格式的转换控制符。

输入:const struct tm *timeptr

输出:char *s,size_t maxsize,char *format

2、字符串转时间函数strptime

函数原型: char *strptime(const char *buf,const char*format,struct tm *timeptr)

format字符串的构建方式和strftime的format字符串完全一样,strptime返回一个指针,指向转换过程处理的最后一个字符后面的那个字符,

输入:const char *buf,const char *format

输出:struct tm *timeptr

实验代码:

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


int main()
{
struct tm tm_time;
strptime("2010-11-15 10:39:30", "%Y-%m-%d %H:%M:%S", &tm_time);
printf("%ld/n", mktime(&tm_time));
printf("-------------------------------------/n");


char szBuf[256] = {0};
time_t timer = time(NULL);
strftime(szBuf, sizeof(szBuf), "%Y-%m-%d %H:%M:%S", localtime(&timer));
printf("%s/n", szBuf);

return 0;
}

运行结果:

1289788770

-------------------------------------

2017-07-11 19:4

转换控制符见下表:

转换控制符

说明

%a

星期几的简写形式

%A

星期几的全称

%b

月份的简写形式

%B

月份的全称

%c

日期和时间

%d

月份中的日期,0-31

%H

小时,00-23

%I

12进制小时钟点,01-12

%j

年份中的日期,001-366

%m

年份中的月份,01-12

%M

分,00-59

%p

上午或下午

%S

秒,00-60

%u

星期几,1-7

%w

星期几,0-6

%x

当地格式的日期

%X

当地格式的时间

%y

年份中的最后两位数,00-99

%Y

%Z

地理时区名称

更多相关文章

  1. Linux下cfsetospeed和cfsetispeed函数
  2. 文本文件到字符串数组?
  3. 字符串处理函数strcat和strtok
  4. Linux的时间函数(转载)
  5. 【linux】下的mkfifo 命令 和【C语言】中的mkfifo函数
  6. linux c (4) 进程终止-exit和_exit函数
  7. 看谁能找出bug★☆open函数总是返回-1
  8. [置顶] Linux C编程--string.h函数解析
  9. linux 下的时间获取函数

随机推荐

  1. ConcurrentHashMap.computeIfAbsent 死循
  2. java多线程(11)AtomicBoolean原子类分析
  3. 作为一个Java程序员必须要知道的单元测试
  4. 解决CAS机制中ABA问题的AtomicStampedRef
  5. Java基础系列:线程同步和线程池
  6. ConcurrentHashMap.computeIfAbsent 死循
  7. java多线程(6)sleep和wait的4大区别
  8. SSL 证书选择指南
  9. 一文带你理解java中的同步工具类CountDow
  10. 你应该要理解的java并发关键字volatile