1
/* Copyright (C) 2000 MySQL AB
3
This program is free software; you can redistribute it and/or modify
4
it under the terms of the GNU General Public License as published by
5
the Free Software Foundation; version 2 of the License.
7
This program is distributed in the hope that it will be useful,
8
but WITHOUT ANY WARRANTY; without even the implied warranty of
9
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
GNU General Public License for more details.
12
You should have received a copy of the GNU General Public License
13
along with this program; if not, write to the Free Software
14
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
16
/* Get date in a printable form: yyyy-mm-dd hh:mm:ss */
18
#include "mysys_priv.h"
26
to - string where date will be written
27
flag - format of date:
28
If flag & GETDATE_TIME Return date and time
29
If flag & GETDATE_SHORT_DATE Return short date format YYMMDD
30
If flag & GETDATE_HHMMSSTIME Return time in HHMMDD format.
31
If flag & GETDATE_GMT Date/time in GMT
32
If flag & GETDATE_FIXEDLENGTH Return fixed length date/time
37
void get_date(register char * to, int flag, time_t date)
39
register struct tm *start_time;
41
#if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT)
45
skr=date ? (time_t) date : my_time(0);
46
#if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT)
47
if (flag & GETDATE_GMT)
48
localtime_r(&skr,&tm_tmp);
50
gmtime_r(&skr,&tm_tmp);
53
if (flag & GETDATE_GMT)
54
start_time= localtime(&skr);
56
start_time= gmtime(&skr);
58
if (flag & GETDATE_SHORT_DATE)
59
sprintf(to,"%02d%02d%02d",
60
start_time->tm_year % 100,
64
sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ?
65
"%4d-%02d-%02d" : "%d-%02d-%02d"),
66
start_time->tm_year+1900,
69
if (flag & GETDATE_DATE_TIME)
71
((flag & GETDATE_FIXEDLENGTH) ?
72
" %02d:%02d:%02d" : " %2d:%02d:%02d"),
76
else if (flag & GETDATE_HHMMSSTIME)
77
sprintf(strend(to),"%02d%02d%02d",