我有一个字符串10131520,正在尝试将其转换为C中的Unix Epoch时间。如果将数字分开,例如10-13-1520,我可以使用类似strptime()的方法,但是由于没有分隔符,我遇到了麻烦。我正在考虑也许通过读取前2位并将它们存储到month变量中来拆分这些位,然后将后2位存储为day,然后将后4位存储为时间。

如果有人能指出正确的方向,我将不胜感激。

谢谢

最佳答案

这种工作方式有很多种,这是一种简单易懂的方式。

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

    // to change  10131520 into  10-13-1520


main(  )
{
  char string[] = "10131520";
  char stringout[11];
  char year_str[5];
  char month_str[3];
  char day_str[3];

  month_str[0] = string[0];
  month_str[1] = string[1];
  month_str[2] = '\0';

  day_str[0] = string[2];
  day_str[1] = string[3];
  day_str[2] = '\0';

  year_str[0] = string[4];
  year_str[1] = string[5];
  year_str[2] = string[6];
  year_str[3] = string[7];
  year_str[4] = '\0';

  strcpy( stringout, month_str );
  strcat( stringout, "-" );
  strcat( stringout, day_str );
  strcat( stringout, "-" );
  strcat( stringout, year_str );

  printf( "\n the date is %s", stringout );
  getchar(  );
}

10-02 07:18