3/19/10

c++ Unix time to string / string to Unix time

Unix time to string:


double doubleUnixTime = 1268974800;
string stringUnixTime;
time_t unixTime = doubleUnixTime ;
doubleUnixTime = asctime(gmtime(&unixTime));


Datetime String to unix time:
Datetime string in this format: yyyy-mm-dd hh:mm:ss

string stringDateTime = "2010-01-11 11:42:58";
struct tm *tmp = new tm;

time_t rawtime;
time ( &rawtime );
tmp = localtime ( &rawtime );

string year = stringDateTime.substr(0,4);
string month = stringDateTime.substr(5,2);
string day = stringDateTime.substr(8,2);
string hour = stringDateTime.substr(11,2);
string min = stringDateTime.substr(14,2);
string sec = stringDateTime.substr(17,2);

if(year != "0000")
tmp->tm_year = atoi(year.c_str()) - 1900;
else
tmp->tm_year = 0;

if(month != "00")
tmp->tm_mon = atoi(month.c_str()) - 1;
else
tmp->tm_mon = 0;

if(day != "00")
tmp->tm_mday = atoi(day.c_str());
else
tmp->tm_mday = 0;

tmp->tm_hour = atoi(hour.c_str());

tmp->tm_min = atoi(min.c_str());

tmp->tm_sec = atoi(sec.c_str());

rawtime = mktime(tmp);

int intRawtime = rawtime;


3/16/10

C++ logging file

This code will create a log file named --today's date--.log and append log messages to the file. Each log message has the current date and time before each message. To compile in linux use this command:


g++ -o example.out logExample.cpp


Enjoy:


//logExample.h file
#ifndef LOGEXAMPLE_H
#define LOGEXAMPLE_H

#include "stdio.h"
#include "stdlib.h"
#include
#include
using std::string;


class log_example
{
public:

log_example();
~log_example();
void printLog(std::string message);
void printLogError(std::string message);

private:
void printDateTime();
FILE * pFile;


};

#endif




//logExample.cpp file
#include "log_example.h"

log_example::log_example()
{
//create log file
char outstr[200];
time_t t;
struct tm *tmp;
t = time(NULL);
tmp = localtime(&t);
strftime(outstr, sizeof(outstr), "%F", tmp);
std::string logFile(outstr);
logFile.append(".log");
pFile = fopen (logFile.c_str(),"a");

printLog( "log_example constructor called");

}

log_example::~log_example()
{
printLog( "log_example destructor called");
fclose (pFile);
}

void log_example::printDateTime()
{
char outstr[200];
time_t t;
struct tm *tmp;
t = time(NULL);
tmp = localtime(&t);
fputs( "\n" ,pFile);
strftime(outstr, sizeof(outstr), "%F", tmp);
fputs( outstr, pFile);
fputs( " " ,pFile);
strftime(outstr, sizeof(outstr), "%T", tmp);
fputs( outstr, pFile);
fputs( " " ,pFile);

}

void log_example::printLog(std::string message)
{
printDateTime();
fputs( message.c_str(),pFile);
fflush (pFile);

}

void log_example::printLogError(std::string message)
{
printDateTime();
fputs( "ERROR: ",pFile);
fputs( message.c_str(),pFile);
fflush (pFile);
}