136 lines
6.1 KiB
C
136 lines
6.1 KiB
C
/************************************************************************/
|
|
/* SISCO SOFTWARE MODULE HEADER *****************************************/
|
|
/************************************************************************/
|
|
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
|
/* 1994 - 2003, All Rights Reserved */
|
|
/* */
|
|
/* MODULE NAME : time_str.h */
|
|
/* PRODUCT(S) : */
|
|
/* */
|
|
/* MODULE DESCRIPTION : */
|
|
/* */
|
|
/* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : */
|
|
/* */
|
|
/* MODIFICATION LOG : */
|
|
/* Date Who Rev Comments */
|
|
/* -------- --- ------ ------------------------------------------- */
|
|
/* 02/28/08 JRB 16 Incl "timeb.h" only in "sysincs.h" */
|
|
/* 11/30/06 RLH 15 merge time_str and time_str2 */
|
|
/* 07/13/06 RLH 14 tstrTimeToStringGmt and tstrStringToTimeGmt */
|
|
/* prototypes added */
|
|
/* 03/06/06 RLH 13 add GetTimeAndUsec, tstrTimeToStringGmt, */
|
|
/* tstrStringToTimeGmt */
|
|
/* 07/27/04 DWL 12 Added tstrTmToString (struct tm) */
|
|
/* 07/16/04 DWL 11 Added tstrStringToTm (struct tm) */
|
|
/* 10/30/03 EJV 10 Added dataLen param to UtcValueToXmlString */
|
|
/* 10/15/03 JRB 09 Del _WIN32 ifdef. */
|
|
/* 09/01/03 GLB 08 Added "XmlStringToUtcValue" & */
|
|
/* "UtcValueToXmlString" */
|
|
/* 07/12/02 NAV 07 Add UtcValsToString and UtcStringToVals */
|
|
/* 02/02/01 EJV 06 tstrStringToTime: chg (long *) to (time_t *) */
|
|
/* 07/13/98 NAV 05 Add _cplusplus support */
|
|
/* 10/15/97 NAV 04 Add Btime4 Support Functions */
|
|
/* 10/08/97 NAV 03 Add seconds to TSTR_DEF_TIME_FORMAT */
|
|
/* 09/04/97 NAV 02 Add Btime6 Conversion routines */
|
|
/* 11/08/94 MDE 01 New */
|
|
/************************************************************************/
|
|
|
|
/************************************************************************/
|
|
/* TIME STRING FORM FOR READ DATA */
|
|
/* */
|
|
/* Date{ws}Time */
|
|
/* Time{ws}Date (? should we allow this) */
|
|
/* Time only (uses current time) */
|
|
/* Date only (uses current date) */
|
|
/* */
|
|
/* Date forms : */
|
|
/* 12/01/56 */
|
|
/* 12/01/1956 */
|
|
/* 12-01-56 */
|
|
/* 12-01-1956 */
|
|
/* 12-1-56 */
|
|
/* 12-1-56 */
|
|
/* 26-Aug-1994 */
|
|
/* 26-AUG-1994 */
|
|
/* AUG-26-1993 */
|
|
/* */
|
|
/* Time forms : */
|
|
/* 7:21:43P */
|
|
/* 7:21:43p */
|
|
/* 7:21:43a */
|
|
/* 7:21:43A */
|
|
/* 07:21:43a */
|
|
/* 7:21:43 */
|
|
/* 21:21:43 */
|
|
/* */
|
|
/************************************************************************/
|
|
#include "sx_defs.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* parms that control how a date is parsed in terms of field ordering */
|
|
|
|
#define S_DATE_ORDER_ANY 0 /* check system locale for ordering */
|
|
#define S_DATE_ORDER_MDY 1 /* date ordering is month-day-year */
|
|
#define S_DATE_ORDER_DMY 2 /* date ordering is day-month-year */
|
|
#define S_DATE_ORDER_YMD 3 /* date ordering is year-month-day */
|
|
|
|
/* number of seconds difference between 1984-01-01 and 1970-01-01. */
|
|
/* this amounts to 14 years including 3 leap-year days (1972, 1976 */
|
|
/* and 1980) converted to a number of seconds. 1984 is a leap year */
|
|
/* but the span of dates does not include 1984-02-29, so 1984's */
|
|
/* leap-year day is not counted. */
|
|
|
|
/* S_SECS_DIFF_1984_1970 is used to calculate Btime6 values. */
|
|
|
|
#define S_SECS_DIFF_1984_1970 ((((1984-1970)*365)+3) * 86400)
|
|
|
|
#define MAX_TIME_STRING_LEN 256
|
|
|
|
#define TSTR_DEF_TIME_FORMAT "%m-%d-%Y %H:%M:%S"
|
|
|
|
extern char * tstrTimeFormat;
|
|
|
|
ST_RET tstrTimeToStringGmt ( time_t t, char * dest );
|
|
ST_RET tstrStringToTimeGmt ( char * src, time_t * out );
|
|
|
|
ST_RET tstrStringToTime ( char * src, time_t * out );
|
|
ST_RET tstrStringToTm ( char * src, struct tm * out );
|
|
|
|
ST_RET tstrTimeToString ( time_t t, char * dest );
|
|
ST_RET tstrTimeToStringGmt ( time_t t, char * dest );
|
|
|
|
ST_RET tstrTmToString ( struct tm * t, char * dest );
|
|
ST_RET tstrTmToStringGmt ( struct tm * t, char * dest );
|
|
|
|
#define BTIME_DEF_TIME_FORMAT "%m-%d-%Y %H:%M:%S"
|
|
|
|
ST_RET Btime6StringToVals ( char * src, ST_INT32 * numDays, ST_INT32 * numMSec );
|
|
ST_RET Btime6ValsToString ( char * dest, ST_INT32 numDays, ST_INT32 numMSec );
|
|
|
|
ST_RET Btime4StringToVals ( char * src, ST_INT32 * numMSec );
|
|
ST_RET Btime4ValsToString ( char * dest, ST_INT32 numMSec );
|
|
|
|
ST_RET UtcStringToVals ( char * src, ST_UINT32 * pSecs, ST_UINT32 * pFraction,
|
|
ST_UINT32 * pQflags );
|
|
ST_RET UtcValsToString ( char * dest, ST_UINT32 secs, ST_UINT32 fraction,
|
|
ST_UINT32 qflags );
|
|
ST_RET UtcStringToValues ( char * src, ST_UINT32 * pSecs, ST_UINT32 * pFraction );
|
|
ST_RET UtcValuesToString ( char * dest, ST_UINT32 secs, ST_UINT32 fraction );
|
|
ST_RET XmlStringToUtcValue ( ST_CHAR * src, SX_DATE_TIME * sxDateTime );
|
|
ST_RET UtcValueToXmlString ( ST_CHAR * dest, ST_UINT destLen, SX_DATE_TIME * sxDateTime );
|
|
ST_DOUBLE CalculateTimeZoneOffset ( ST_VOID );
|
|
#define UTC_DEF_TIME_FORMAT "%Y-%m-%dT%H:%M:%S"
|
|
|
|
#define GET_TIME_AND_USEC_DEFINED 1
|
|
time_t GetTimeAndUsec ( long * usec );
|
|
|
|
time_t usr_mkgmtime ( struct tm * t );
|
|
|
|
#ifdef __cplusplus
|
|
} /* End of 'C' functions */
|
|
|
|
#endif
|