00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <config.h>
00019
00020 #include <drizzled/internal/my_sys.h>
00021 #include <drizzled/internal/m_string.h>
00022 #include <cstdio>
00023
00024 namespace drizzled
00025 {
00026 namespace internal
00027 {
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 void get_date(char * to, int flag, time_t date)
00046 {
00047 tm *start_time;
00048 time_t skr;
00049 struct tm tm_tmp;
00050
00051 skr= date ? (time_t) date : time(0);
00052 if (flag & GETDATE_GMT)
00053 localtime_r(&skr,&tm_tmp);
00054 else
00055 gmtime_r(&skr,&tm_tmp);
00056 start_time= &tm_tmp;
00057 if (flag & GETDATE_SHORT_DATE)
00058 sprintf(to,"%02d%02d%02d",
00059 start_time->tm_year % 100,
00060 start_time->tm_mon+1,
00061 start_time->tm_mday);
00062 else
00063 sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ?
00064 "%4d-%02d-%02d" : "%d-%02d-%02d"),
00065 start_time->tm_year+1900,
00066 start_time->tm_mon+1,
00067 start_time->tm_mday);
00068 if (flag & GETDATE_DATE_TIME)
00069 sprintf(strchr(to, '\0'),
00070 ((flag & GETDATE_FIXEDLENGTH) ?
00071 " %02d:%02d:%02d" : " %2d:%02d:%02d"),
00072 start_time->tm_hour,
00073 start_time->tm_min,
00074 start_time->tm_sec);
00075 else if (flag & GETDATE_HHMMSSTIME)
00076 sprintf(strchr(to, '\0'),"%02d%02d%02d",
00077 start_time->tm_hour,
00078 start_time->tm_min,
00079 start_time->tm_sec);
00080 }
00081
00082 }
00083 }