22#define TIME_SCALE 1000000000
24#ifndef TYPEOF_TIMEVAL_TV_SEC
25# define TYPEOF_TIMEVAL_TV_SEC time_t
27#ifndef TYPEOF_TIMEVAL_TV_USEC
28# if INT_MAX >= 1000000
29# define TYPEOF_TIMEVAL_TV_USEC int
31# define TYPEOF_TIMEVAL_TV_USEC long
35#if SIZEOF_TIME_T == SIZEOF_LONG
37#elif SIZEOF_TIME_T == SIZEOF_INT
39#elif SIZEOF_TIME_T == SIZEOF_LONG_LONG
42# error cannot find integer type which size is same as time_t.
VALUE rb_strftime_timespec(const char *format, size_t format_len, rb_encoding *enc, VALUE time, const struct vtm *vtm, struct timespec *ts, int gmt)
VALUE rb_strftime(const char *format, size_t format_len, rb_encoding *enc, VALUE time, const struct vtm *vtm, VALUE timev, int gmt)
VALUE rb_time_zone_abbreviation(VALUE zone, VALUE time)
unsigned long unsigned_time_t
PACKED_STRUCT_UNALIGNED(struct vtm { VALUE year;VALUE subsecx;VALUE utc_offset;VALUE zone;unsigned int yday:9;unsigned int mon:4;unsigned int mday:5;unsigned int hour:5;unsigned int min:6;unsigned int sec:6;unsigned int wday:3;unsigned int isdst:2;})