目录 搜索
Algorithms Algorithms(算法) bsearch bsearch_s qsort qsort_s Atomic operations Atomic operations library(原子操作库) ATOMIC_*_LOCK_FREE atomic_compare_exchange_strong atomic_compare_exchange_strong_explicit atomic_compare_exchange_weak atomic_compare_exchange_weak_explicit atomic_exchange atomic_exchange_explicit atomic_fetch_add atomic_fetch_add_explicit atomic_fetch_and atomic_fetch_and_explicit atomic_fetch_or atomic_fetch_or_explicit atomic_fetch_sub atomic_fetch_sub_explicit atomic_fetch_xor atomic_fetch_xor_explicit atomic_flag atomic_flag_clear atomic_flag_clear_explicit ATOMIC_FLAG_INIT atomic_flag_test_and_set atomic_flag_test_and_set_explicit atomic_init atomic_is_lock_free atomic_load atomic_load_explicit atomic_signal_fence atomic_store atomic_store_explicit atomic_thread_fence(线程围栏) ATOMIC_VAR_INIT kill_dependency memory_order(内存排序) C keywords auto(自动存储) break(跳出循环) C keywords(关键词) case char const(常量修饰符) continue default(预设运算式) do double(双精度浮点型) else enum(枚举类型) extern(全局变量) float(浮点数) for fortran goto(goto语句) if(if语句) inline(行内函式) int long(长整型) register(寄存器变量) restrict( restrict类型限定符) return short signed sizeof(sizeof运算符) static(静态变量) struct(结构体) switch(switch语句) typedef(typedef关键字) union(联合体) unsigned(无符号) void(空类型) volatile(volatile变量) while(while语句) _Alignas _Alignof _Atomic _Bool _Complex _Generic _Imaginary _Noreturn _Static_assert _Thread_local C language #define directive #elif directive #else directive #endif directive #error directive #if directive #ifdef directive #ifndef directive #include directive #line directive #pragma directive alignas(对齐指定符) Alternative operators and tokens(替代运算符和令牌) Analyzability Arithmetic operators Arithmetic types Array declaration(数组声明) Array initialization(阵列初始化) ASCII Chart Assignment operators(赋值运算符) types(atomic类型限定符) Basic concepts Bit fields(位域) break statement C language C Operator Precedence cast operator character constant(字符字面量) Comments(注释符) Comparison operators(比较运算符) compound literals(符合字面量) Conditional inclusion(条件包含) Conformance(一致性) const type qualifier(const 限定符) Constant expressions(常量表达) continue statement Declarations(声明) do-while loop Enumerations(枚举类型) Escape sequences(转义字符) Expressions(表达式) External and tentative definitions(外部和暂定的定义) File scope(文件范围) floating constant(浮点常量) for loop Function declarations(函数声明) Function definitions(函数声明) Functions Generic selection泛型选择 goto statement Identifier(标示符) if statement Implicit conversions(隐式转换) Increment/decrement operators(前置/后置操作符) Initialization(初始化) inline function specifier(内联函式) integer constant Lifetime(生命期) Logical operators(逻辑运算符) Lookup and name spaces Main function(主函式) Member access operators(会员接入运营商) Memory model Objects and alignment(字节对齐) Order of evaluation(评估顺序) Other operators Phases of translation(翻译阶段) Pointer declaration Preprocessor(预处理) restrict type qualifier(restrict类型限定符) return statement Scalar initialization(标量类型初始化) Scope(范围) sizeof operator(sizeof运算符) Statements(陈述) static assert declaration(静态断言声明) Static storage duration(静态存储周期) Storage-class specifiers(存储类说明符) string literals(字符串字面量) Struct and union initialization(结构体与联合体初始化) Struct declaration(结构体声明) switch statement Thread storage duration(线程存储时间) Type Type(类型) Typedef declaration(Typedef声明) Undefined behavior(未定义行为) Union declaration(联合体声明) Value categories(值类别) Variadic arguments(变长参数宏) volatile type qualifier(volatile 类型限定符) while loop _Alignof operator _Noreturn function specifier Date and time asctime(asctime函数) asctime_s clock CLOCKS_PER_SEC clock_t ctime(ctime函数) ctime_s Date and time utilities(日期和时间库) difftime(计算两个时间的间隔) gmtime gmtime_s localtime localtime_s mktime(将时间结构数据转换成经过的秒数的函数) strftime(格式化输出时间函数) time timespec timespec_get time_t tm wcsftime(格式化时间宽字符) Dynamic memory management aligned_alloc C memory management library(内存管理库) calloc free(释放动态分配空间的函数) malloc(动态分配内存空间的函数) realloc(重新分配内存空间的函数) Error handling abort_handler_s assert(断言) constraint_handler_t errno(错误报告) Error handling(错误处理) Error numbers(错误个数) ignore_handler_s set_constraint_handler_s static_assert File input/output clearerr(清除/复位) fclose feof ferror fflush(清空文件缓冲区) fgetc fgetpos fgets fgetwc fgetws File input/output fopen fopen_s fprintf fprintf_s fputc fputs fputwc fputws fread freopen freopen_s fscanf fscanf_s fseek fsetpos ftell fwide fwprintf fwprintf_s fwrite fwscanf fwscanf_s getc getchar gets gets_s getwchar perror printf printf_s putc putchar puts putwc putwchar remove rename rewind scanf scanf_s setbuf setvbuf snprintf sprintf sscanf sscanf_s swprintf swprintf_s swscanf swscanf_s tmpfile tmpfile_s tmpnam tmpnam_s ungetc ungetwc vfprintf vfprintf_s vfscanf vfscanf_s vfwprintf vfwprintf_s vfwscanf vfwscanf_s vprintf vprintf_s vscanf vscanf_s vsnprintf vsprintf vsscanf vsscanf_s vswprintf vswprintf_s vswscanf vswscanf_s vwprintf vwprintf_s vwscanf vwscanf_s wprintf wprintf_s wscanf wscanf_s Localization support lconv LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME localeconv Localization support setlocale Numerics abs acos acosf acosh acoshf acoshl acosl asin asinf asinh asinhf asinhl asinl atan atan2 atan2f atan2l atanf atanh atanhf atanhl atanl cabs cabsf cabsl cacos cacosf cacosh cacoshf cacoshl cacosl carg cargf cargl casin casinf casinh casinhf casinhl casinl catan catanf catanh catanhf catanhl catanl cbrt cbrtf cbrtl ccos ccosf ccosh ccoshf ccoshl ccosl ceil ceilf ceill cexp cexpf cexpl cimag cimagf cimagl clog clogf clogl CMPLX CMPLXF CMPLXL Common mathematical functions complex Complex number arithmetic conj conjf conjl copysign copysignf copysignl cos cosf cosh coshf coshl cosl cpow cpowf cpowl cproj cprojf cprojl creal crealf creall csin csinf csinh csinhf csinhl csinl csqrt csqrtf csqrtl ctan ctanf ctanh ctanhf ctanhl ctanl div double_t erf erfc erfcf erfcl erff erfl exp exp2 exp2f exp2l expf expl expm1 expm1f expm1l fabs fabsf fabsl fdim feclearexcept fegetenv fegetexceptflag fegetround feholdexcept feraiseexcept fesetenv fesetexceptflag fesetround fetestexcept feupdateenv FE_ALL_EXCEPT FE_DFL_ENV FE_DIVBYZERO FE_DOWNWARD FE_INEXACT FE_INVALID FE_OVERFLOW FE_TONEAREST FE_TOWARDZERO FE_UNDERFLOW FE_UPWARD Floating-point environment float_t floor floorf floorl fma fmaf fmal fmax fmaxf fmaxl fmin fminf fminl fmod fmodf fmodl fpclassify FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO frexp frexpf frexpl HUGE_VAL HUGE_VALF HUGE_VALL hypot hypotf hypotl I ilogb ilogbf ilogbl imaginary imaxabs imaxdiv INFINITY isfinite isgreater isgreaterequal isinf isless islessequal islessgreater isnan isnormal isunordered labs ldexp ldexpf ldexpl ldiv lgamma lgammaf lgammal llabs lldiv llrint llrintf llrintl llround llroundf llroundl log log10 log10f log10l log1p log1pf log1pl log2 log2f log2l logb logbf logbl logf logl lrint lrintf lrintl lround lroundf lroundl MATH_ERREXCEPT math_errhandling MATH_ERRNO modf modff modfl nan NAN nanf nanl nearbyint nearbyintf nearbyintl nextafter nextafterf nextafterl nexttoward nexttowardf nexttowardl Numerics pow powf powl Pseudo-random number generation rand RAND_MAX remainder remainderf remainderl remquo remquof remquol rint rintf rintl round roundf roundl scalbln scalblnf scalblnl scalbn scalbnf scalbnl signbit sin sinf sinh sinhf sinhl sinl sqrt sqrtf sqrtl srand tan tanf tanh tanhf tanhl tanl tgamma tgammaf tgammal trunc truncf truncl Type-generic math _Complex_I _Imaginary_I Program support abort atexit at_quick_exit exit EXIT_FAILURE EXIT_SUCCESS getenv getenv_s jmp_buf longjmp Program support utilities quick_exit raise setjmp SIGABRT SIGFPE SIGILL SIGINT signal SIGSEGV SIGTERM sig_atomic_t SIG_DFL SIG_ERR SIG_IGN system _Exit Strings atof atoi atol atoll btowc c16rtomb c32rtomb char16_t char32_t isalnum isalpha isblank iscntrl isdigit isgraph islower isprint ispunct isspace isupper iswalnum iswalpha iswblank iswcntrl iswctype iswdigit iswgraph iswlower iswprint iswpunct iswspace iswupper iswxdigit isxdigit mblen mbrlen mbrtoc16 mbrtoc32 mbrtowc mbsinit mbsrtowcs mbsrtowcs_s mbstate_t mbstowcs mbstowcs_s mbtowc memchr memcmp memcpy memcpy_s memmove memmove_s memset memset_s Null-terminated byte strings Null-terminated multibyte strings Null-terminated wide strings strcat strcat_s strchr strcmp strcoll strcpy strcpy_s strcspn strerror strerrorlen_s strerror_s Strings library strlen strncat Thread support call_once cnd_broadcast cnd_destroy cnd_init cnd_signal cnd_timedwait cnd_wait mtx_destroy mtx_init mtx_lock mtx_plain mtx_recursive mtx_timed mtx_timedlock mtx_trylock mtx_unlock once_flag ONCE_FLAG_INIT thrd_busy thrd_create thrd_current thrd_detach thrd_equal thrd_error thrd_exit thrd_join thrd_nomem thrd_sleep thrd_success thrd_timedout thrd_yield Thread support library thread_local tss_create tss_delete TSS_DTOR_ITERATIONS tss_get tss_set Type support Boolean type support library Fixed width integer types FLT_EVAL_METHOD FLT_ROUNDS max_align_t NULL Numeric limits offsetof ptrdiff_t size_t Type support Variadic functions Variadic functions va_arg va_copy va_end va_list va_start
文字

在头文件<time.h>中定义



size_t strftime(char * str,size_t count,const char * format,const struct tm * time);


(直到C99)

size_t strftime(char * restrict str,size_t count,const char * restrict format,const struct tm * restrict time);


(自C99以来)

根据格式字符串将日期和时间信息从给定日历时间转换time为以空字符结尾的多字节str字符串format。最多count写入字节。

参数

海峡

-

指向char数组的第一个元素的输出



















































































































































































计数

-

最大写入字节数



















































































































































































格式

-

指向以空字符结尾的多字节字符串指定转换格式的指针。格式字符串由零个或多个转换说明符和普通字符(除%以外)组成。所有普通字符(包括终止空字符)都将被复制到输出字符串而不进行修改。每个转换规范都以%字符开头,可以选择后跟E或O修饰符(如果语言环境不支持,则忽略),后面跟着决定说明符行为的字符。以下格式说明符可用:转换说明符说明使用的字段%写入文字%。完整的转换规范必须是%%。n(C99)写入换行符t(C99)写入水平制表符年份Y以十进制数字写年,例如 在IS0 8601周内从星期一开始,每年的第一周必须满足以下要求:包括1月4日包括今年的第一个星期四tm_year,tm_wday,tm_yday g(C99)写出ISO 8601以星期为基础的年份的最后2位数字,即包含指定周的年份(范围00,99)。在IS0 8601周内从星期一开始,并且一年中的第一周必须满足以下要求:包括1月4日包括今年的第一个星期四tm_year,tm_wday,tm_yday月份b写出缩写月份名称,例如Oct(区域依赖)tm_mon h( C99)b的同义词tm_mon B写完整的月份名称,例如10月(取决于语言环境)tm_mon m将月份写为十进制数字(范围01,12)tm_mon Om(C99)使用替代数字系统写月 十二而不是12 ja_JP locale tm_mon周U写一年中的一周作为十进制数(星期日是一周的第一天)(范围00,53)tm_year,tm_wday,tm_yday OU(C99)写一年的周,如%U,使用替代数字系统,例如五十二,而不是ja_JP语言环境中的52,tm_year,tm_wday,tm_yday W将年份的星期写为十进制数(星期一是一周中的第一天)(范围00 ,53)tm_year,tm_wday,tm_yday OW(C99)使用替代数字系统(例如五十二而不是52)在ja_JP locale tm_year,tm_wday,tm_yday V(C99)中写入ISO一年中的8601周(范围01,53)。在IS0 8601周内从星期一开始,一年的第一周必须满足以下要求:包括1月4日包括今年的第一个星期四tm_year,tm_wday,tm_yday OV(C99)写入年份的星期,如%V,使用替代数字系统,例如五十二,而不是ja_JP语言环境中的52,tm_year,tm_wday,tm_yday每年的月份/月份j作为十进制数字(范围001,366)写入一年中的某一天tm_yday d以十进制数字形式显示月份的日期(范围为01,31)tm_mday Od(C99)写入月份的零基日期使用替代数字系统,例如ja_JP语言环境中的二十七而不是23单个字符前面有一个空格。tm_mday e(C99)将月份中的某一天写为十进制数(范围为1,31)。单个数字前面有一个空格。tm_mday Oe(C99)使用替代数字系统编写一个月的一天,例如 二十七而不是ja_JP语言环境中的27单个字符前面有一个空格。tm_mday一周中的某天写一个缩写星期几名称,例如Fri(区域设置相关)tm_wday A写出完整的星期几名称,例如星期五(区域设置相关)tm_wday w写入星期几作为十进制数字,其中星期日为0(范围0-6)tm_wday Ow(C99)使用替代数字系统(例如ja_JP区域设置tm_wday u(C99)将工作日写为十进制数,其中星期一为1(ISO 8601格式)(范围1 -7)tm_wday Ou(C99)使用替代数字系统写入星期几,其中星期一为1,例如ja_JP语言环境中的二代替2代表tm_wday小时,分钟,秒H将小时数写为十进制数,

转换说明符

说明

使用的字段

%

写文字%。完整的转换规范必须是%%。


N(C99)

写换行符


吨(C99)

写水平制表符


将年份写成十进制数字,例如2017

tm_year

安永(C99)

在替代表示中写入年份,例如平成23年(平成23年)而不是2011年(2011年)在ja_JP语言环境中

tm_year

写一年的最后两位数作为十进制数(范围00,99)

tm_year

Oy(C99)

使用替代数字系统写入年份的最后两位数字,例如ja_JP语言环境中的十一而不是11

tm_year

Ey(C99)

将年份写入与区域设置的备选日历周期的偏移%EC(区域依赖)

tm_year

C(C99)

将年份的前两位数字作为十进制数字(范围为00,99)

tm_year

EC(C99)

在地区的替代表示中写入基准年(期间)的名称,例如ja_JP中的平成(平成时代)

tm_year

G(C99)

writes ISO 8601 week-based year, i.e. the year that contains the specified week. In IS0 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:   Includes January 4   Includes first Thursday of the year

tm_year, tm_wday, tm_yday

g(C99)

writes last 2 digits of ISO 8601 week-based year, i.e. the year that contains the specified week (range 00,99). In IS0 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:   Includes January 4   Includes first Thursday of the year

tm_year, tm_wday, tm_yday

Month

b

writes abbreviated month name, e.g. Oct (locale dependent)

tm_mon

h(C99)

synonym of b

tm_mon

B

writes full month name, e.g. October (locale dependent)

tm_mon

m

writes month as a decimal number (range 01,12)

tm_mon

Om(C99)

writes month using the alternative numeric system, e.g. 十二 instead of 12 in ja_JP locale

tm_mon

Week

U

writes week of the year as a decimal number (Sunday is the first day of the week) (range 00,53)

tm_year, tm_wday, tm_yday

OU(C99)

writes week of the year, as by %U, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale

tm_year, tm_wday, tm_yday

W

writes week of the year as a decimal number (Monday is the first day of the week) (range 00,53)

tm_year, tm_wday, tm_yday

OW(C99)

writes week of the year, as by %W, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale

tm_year, tm_wday, tm_yday

V(C99)

writes ISO 8601 week of the year (range 01,53). In IS0 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:   Includes January 4   Includes first Thursday of the year

tm_year, tm_wday, tm_yday

OV(C99)

writes week of the year, as by %V, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale

tm_year, tm_wday, tm_yday

Day of the year/month

j

writes day of the year as a decimal number (range 001,366)

tm_yday

d

writes day of the month as a decimal number (range 01,31)

tm_mday

Od(C99)

writes zero-based day of the month using the alternative numeric system, e.g 二十七 instead of 23 in ja_JP locale Single character is preceded by a space.

tm_mday

e(C99)

writes day of the month as a decimal number (range 1,31). Single digit is preceded by a space.

tm_mday

Oe(C99)

writes one-based day of the month using the alternative numeric system, e.g. 二十七 instead of 27 in ja_JP locale Single character is preceded by a space.

tm_mday

Day of the week

a

writes abbreviated weekday name, e.g. Fri (locale dependent)

tm_wday

A

writes full weekday name, e.g. Friday (locale dependent)

tm_wday

w

writes weekday as a decimal number, where Sunday is 0 (range 0-6)

tm_wday

Ow(C99)

writes weekday, where Sunday is 0, using the alternative numeric system, e.g. 二 instead of 2 in ja_JP locale

tm_wday

u(C99)

writes weekday as a decimal number, where Monday is 1 (ISO 8601 format) (range 1-7)

tm_wday

Ou(C99)

writes weekday, where Monday is 1, using the alternative numeric system, e.g. 二 instead of 2 in ja_JP locale

tm_wday

Hour, minute, second

H

writes hour as a decimal number, 24 hour clock (range 00-23)

tm_hour

OH(C99)

writes hour from 24-hour clock using the alternative numeric system, e.g. 十八 instead of 18 in ja_JP locale

tm_hour

I

writes hour as a decimal number, 12 hour clock (range 01,12)

tm_hour

OI(C99)

writes hour from 12-hour clock using the alternative numeric system, e.g. 六 instead of 06 in ja_JP locale

tm_hour

M

writes minute as a decimal number (range 00,59)

tm_min

OM(C99)

writes minute using the alternative numeric system, e.g. 二十五 instead of 25 in ja_JP locale

tm_min

S

writes second as a decimal number (range 00,60)

tm_sec

OS(C99)

writes second using the alternative numeric system, e.g. 二十四 instead of 24 in ja_JP locale

tm_sec

Other

c

writes standard date and time string, e.g. Sun Oct 17 04:41:13 2010 (locale dependent)

all

Ec(C99)

writes alternative date and time string, e.g. using 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale

all

x

writes localized date representation (locale dependent)

all

Ex(C99)

writes alternative date representation, e.g. using 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale

all

X

writes localized time representation (locale dependent)

all

EX(C99)

writes alternative time representation (locale dependent)

all

D(C99)

equivalent to "%m/%d/%y"

tm_mon, tm_mday, tm_year

F(C99)

equivalent to "%Y-%m-%d" (the ISO 8601 date format)

tm_mon, tm_mday, tm_year

r(C99)

写本地化的12小时时钟时间(取决于语言环境)

tm_hour,tm_min,tm_sec

R(C99)

相当于“%H:%M”

tm_hour,tm_min

T(C99)

相当于“%H:%M:%S”(ISO 8601时间格式)

tm_hour,tm_min,tm_sec

p

写本地化的上午或下午(区域依赖)

tm_hour

与(C99)

以ISO 8601格式(例如-0430)写入UTC的偏移量,如果时区信息不可用,则不写入字符

tm_isdst的

写时区名称或缩写,或者如果时区信息不可用,则不包含字符(取决于语言环境)

tm_isdst的

转换说明符

说明

使用的字段



















































































































































































%

写文字%。完整的转换规范必须是%%。




















































































































































































N(C99)

写换行符




















































































































































































吨(C99)

写水平制表符




















































































































































































| 年份|

| Y | 将年份写为十进制数字,例如2017 | tm_year |

| EY(C99)| 在替代表示中写入年份,例如平成23年(平成23年)而不是2011年(2011年)在ja_JP地区| tm_year |

| y | 将年份的最后2位数字写为十进制数(范围为00,99)| tm_year |

| Oy(C99)| 使用替代数字系统写入年份的最后2位数字,例如ja_JP locale |中的十一而不是11 tm_year |

| Ey(C99)| 将年份写入与区域设置的替代日历期%EC(区域依赖)|的偏移量 tm_year |

| C(C99)| 写一年的前两位数作为十进制数(范围为00,99)| tm_year |

| EC(C99)| 在地区的替代表示中写入基准年(期间)的名称,例如平成(平成时代)in ja_JP | tm_year |

| G(C99)| 写ISO 8601以周为基础的年份,即包含指定周的年份。在IS0 8601周内从星期一开始,并且一年中的第一周必须满足以下要求:包括1月4日包括今年的第一个星期四| tm_year,tm_wday,tm_yday |

| g(C99)| 写出ISO 8601以周为单位的年份的最后2位数字,即包含指定周的年份(范围00,99)。在IS0 8601周内从星期一开始,并且一年中的第一周必须满足以下要求:包括1月4日包括今年的第一个星期四| tm_year,tm_wday,tm_yday |

| 月|

| b | 写出缩写的月份名称,例如Oct(区域依赖)| tm_mon |

| h(C99)| b |的同义词 tm_mon |

| B | 写完整的月份名称,例如10月(取决于语言环境)| tm_mon |

| m | 将月份作为十进制数字(范围为01,12)|写入 tm_mon |

| Om(C99)| 使用替代数字系统写月份,例如ja_JP locale |中的十二而不是12 tm_mon |

| 星期|

| U | 写一年中的一周作为十进制数(星期日是一周中的第一天)(范围00,53)| tm_year,tm_wday,tm_yday |

| OU(C99)| 写一年中的一周,如%U,使用替代数字系统,例如五十二而不是ja_JP语言环境中的52。tm_year,tm_wday,tm_yday |

| W | 写一年中的一周作为十进制数(星期一是一周中的第一天)(范围00,53)| tm_year,tm_wday,tm_yday |

| OW(C99)| 用%W写出一年中的第一周,使用替代数字系统,例如ja_JP语言环境中的五十二而不是52。tm_year,tm_wday,tm_yday |

| V(C99)| 写一年的ISO 8601周(范围01,53)。在IS0 8601周内从星期一开始,并且一年中的第一周必须满足以下要求:包括1月4日包括今年的第一个星期四| tm_year,tm_wday,tm_yday |

| OV(C99)| 写出一年中的一周,如%V所示,使用替代数字系统,例如ja_JP语言环境中的五十二而不是52。tm_year,tm_wday,tm_yday |

| 一年中的每月|

| j | 写一年中的一天作为十进制数(范围001,366)| tm_yday |

| d | 将月份的日期写为十进制数(范围为01,31)| tm_mday |

| Od(C99)| 使用替代数字系统写出从零开始的一天的日期,例如ja_JP语言环境中的二十七而不是23。单个字符前面有一个空格。| tm_mday |

| e(C99)| 将月份的日期写为十进制数(范围1,31)。单个数字前面有一个空格。| tm_mday |

| Oe(C99)| 使用替代数字系统写一个月的一天,例如ja_JP语言环境中的二十七而不是27。单个字符前面有一个空格。| tm_mday |

| 一周中的星期几|

| a | 写缩写的星期几名称,例如Fri(locale dependent)| tm_wday |

| A | 写完整的星期几名称,例如Friday(locale dependent)| tm_wday |

| w | 写星期几作为十进制数,星期日为0(范围0-6)| tm_wday |

| Ow(C99)| 写星期几,星期日为0,使用替代数字系统,例如ja_JP locale |中的二而不是2 tm_wday |

| 你(C99)| 写星期几作为十进制数,星期一为1(ISO 8601格式)(范围1-7)| tm_wday |

| Ou(C99)| 写星期几,星期一为1,使用替代数字系统,例如ja_JP locale |中的二而不是2 tm_wday |

| 小时,分钟,秒|

| H | 将小时数写为十进制数,24小时制(范围00-23)| tm_hour |

| OH(C99)| 使用替代数字系统从24小时制写小时,例如ja_JP locale |中的十八而不是18 tm_hour |

| 我| 将小时数写为十进制数,12小时制(范围01,12)| tm_hour |

| OI(C99)| 使用替代数字系统从12小时时钟写入小时,例如ja_JP locale中的六而不是06 tm_hour |

| M | 将分钟写入十进制数(范围为00,59)| tm_min |

| OM(C99)| 使用替代数字系统写分钟,例如ja_JP locale |中的二十五而不是25 tm_min |

| S | 写第二个作为十进制数(范围00,60)| tm_sec |

| OS(C99)| 使用替代数字系统写第二个,例如ja_JP locale |中的二十四而不是24 tm_sec |

| 其他|

| c | 写标准的日期和时间字符串,例如Sun 10月17日04:41:13 2010(取决于语言环境)| 全部|

| Ec(C99)| 写替代日期和时间字符串,例如在ja_JP语言环境中使用平成23年(平成23年)而不是2011年(2011年)全部|

| x | 写本地化的日期表示法(依赖于语言环境)| 全部|

| Ex(C99)| 写替代日期表示法,例如在ja_JP语言环境中使用平成23年(平成23年)而不是2011年(2011年)全部|

| X | 写本地化的时间表示(区域依赖)| 全部|

| EX(C99)| 写入替代时间表示(取决于语言环境)| 全部|

| D(C99)| 相当于“%m /%d /%y”| tm_mon,tm_mday,tm_year |

| F(C99)| 相当于“%Y-%m-%d”(ISO 8601日期格式)| tm_mon,tm_mday,tm_year |

| r(C99)| 写本地化的12小时时钟时间(取决于语言环境)| tm_hour,tm_min,tm_sec |

| R(C99)| 相当于“%H:%M”| tm_hour,tm_min |

| T(C99)| 相当于“%H:%M:%S”(ISO 8601时间格式)| tm_hour,tm_min,tm_sec |

| p | 写本地化的上午或下午(区域依赖)| tm_hour |

| z(C99)| 写入ISO 8601格式的UTC偏移量(例如-0430),如果时区信息不可用,则不显示字符| tm_isdst |

| Z | 写时区名称或缩写,或者如果时区信息不可用(取决于语言环境),则为无字符| tm_isdst |

| 时间|  -  | 指向结构tm对象的指针,指定格式化为|的时间

  • 包括1月4日

  • 包括一年的第一个星期四

tm_year, tm_wday, tm_yday     g

(C99)写出ISO 8601以周为单位的年份的后两位数字,即包含指定周(范围[00,99])的年份。在IS0 8601周内从星期一开始,一年的第一周必须满足以下要求:

  • 包括1月4日

  • 包括一年的第一个星期四

tm_yeartm_wdaytm_yday     月      b   写缩写的月份名称,例如Oct(位置有关)   tm_mon h

(C99)b tm_mon B   写完整月份名称的同义词,例如October(区域设置相关)    tm_mon m   将月份写为十进制数(范围[01,12])   tm_mon Om

(C99)写道使用可替代数字系统,如十二代替12 Ja_JP表示区域    tm_mon     周      U   写了一年的星期为十进制数(星期日是一周的第一天)(范围[00,53])    tm_yeartm_wdaytm_yday OU

(C99)写道一周年通过,%U使用替代的数字系统,如五十二,而不是在Ja_JP表示区域52    tm_yeartm_wdaytm_yday W   写了一年的星期为十进制数(星期一是一周的第一天)(范围[00,53])    tm_yeartm_wdaytm_yday OW

(C99)写道星期的一年,通过%W使用替代的数字系统,如五十二,而不是在Ja_JP表示区域52    tm_yeartm_wdaytm_yday V

(C99)写入一年中的ISO 8601周(范围[01,53])。在IS0 8601周内从星期一开始,一年的第一周必须满足以下要求:

  • 包括1月4日

  • 包括一年的第一个星期四

tm_year, tm_wday, tm_yday     OV

(C99)写入周一年中通过,%V使用替代的数字系统,例如五十二代替Ja_JP表示区域52    tm_yeartm_wdaytm_yday     年/月的日      j   写入一年中的哪一天为十进制数(范围[001,366])    tm_yday d   写入作为十进制数(范围[01,31])    的月份tm_mday Od

(C99)使用替代数字系统编写月份的零基日期,例如ja_JP语言环境中的二十七而不是23。单个字符前面有一个空格。

tm_mday     e

(C99)以十进制数(范围)的形式写入当月的某天[1,31]。单个数字前面有一个空格。

tm_mday     Oe

(C99)使用替代数字系统写一个月一天,例如ja_JP语言环境中的二十七而不是27。单个字符前面有一个空格。

tm_mday     星期      a   写简写的星期名称,例如Fri(位置有关)    tm_wday A   写完整的星期几的名称,如Friday(位置有关)    tm_wday w   写入平日的十进制数,星期日为0(范围[0-6])   tm_wday Ow

(C99)使用替代数字系统写周日,其中星期日是0,例如ja_JP语言环境中的二而不是2   tm_wday u

(C99)将星期几写为十进制数,星期一为1(ISO 8601格式)(范围[1-7])   tm_wday Ou

(C99)写入平日,其中星期一是1,使用备选数字系统,例如,二,而不是在区域设置Ja_JP表示2    tm_wday     时,分,秒      H   写入小时为十进制数,24小时时钟(范围[00-23])   tm_hour OH

(C99)写入小时从24小时时钟使用备选数字系统,例如十八代替18的区域设置Ja_JP表示    tm_hour I   写入小时为十进制数,12个小时的时钟(范围[01,12])   tm_hour OI

(C99)使用替代数字系统从12小时时钟写入小时,例如ja_JP语言环境中的六而不是06    tm_hour M   写入分钟数(范围[00,59])   tm_min OM

(C99)使用替代数字系统写入分钟,例如ja_JP语言环境中的二十五而不是25    tm_min S   写入第二个作为十进制数(范围[00,60])   tm_sec OS

(C99)使用替代数字系统写第二个,例如ja_JP语言环境中的二十四而不是24个    tm_sec     其他      c   写入标准日期和时间字符串,例如Sun Oct 17 04:41:13 2010(取决于语言环境)全部     Ec

(C99)写入备选日期和时间字符串,例如在ja_JP语言环境中使用平成23年(年平成23年)而不是2011年(2011年),全部      x   写入本地化日期表示(与语言环境有关)全部     Ex

(C99)在ja_JP语言环境中使用平成23年(年平23)而不是2011年(2011年)编写替代日期表示法,全部      X   写入本地时间表示(与语言环境有关)全部     EX

(C99)全部写入替代时间表示(区域依赖)     D

(C99),相当于“%米/%d /%Y” ,tm_montm_mdaytm_year F

(C99),相当于“%Y-%间- %d” (在ISO 8601的日期格式)    tm_montm_mdaytm_year r

(C99)写入局部12小时制的时间(当前位置有关)    tm_hourtm_mintm_sec R

(C99)相当于“%H:%M” tm_hourtm_min T

(C99),相当于“%H:%M:%S” (在ISO 8601时间格式)    tm_hourtm_mintm_sec p   写入局部上午或下午(当前位置有关)   tm_hour z

(C99)将UTC的偏移量在ISO 8601格式(例如-0430),或没有字符,如果时区信息不可    tm_isdst Z   写入的时区名称或缩写,如果时区信息不可用,或者没有文字(语言环境而定)    tm_isdst        时间 - 指向指定格式化时间的struct tm对象的指针

返回值

写入字符数组的字节数str不包括终止'\0'成功。如果count在整个字符串可以存储之前达到,0则返回并且内容未定义。

#include <stdio.h>#include <time.h>#include <locale.h>
 int main(void){
    char buff[70];
    struct tm my_time = { .tm_year=112, // = year 2012                          .tm_mon=9,    // = 10th month                          .tm_mday=9,   // = 9th day                          .tm_hour=8,   // = 8 hours                          .tm_min=10,   // = 10 minutes                          .tm_sec=20    // = 20 secs    }; 
    if (strftime(buff, sizeof buff, "%A %c", &my_time)) {        puts(buff);    } else {        puts("strftime failed");    } 
    setlocale(LC_TIME, "el_GR.utf8"); 
    if (strftime(buff, sizeof buff, "%A %c", &my_time)) {        puts(buff);    } else {        puts("strftime failed");    }}

输出:

Sunday Sun Oct  9 08:10:20 2012Κυριακή Κυρ 09 Οκτ 2012 08:10:20 πμ EST

参考

  • C11标准(ISO / IEC 9899:2011):

    • 7.27.3.5 strftime函数(p:394-397)

  • C99标准(ISO / IEC 9899:1999):

    • 7.23.3.5 strftime函数(p:343-347)

  • C89 / C90标准(ISO / IEC 9899:1990):

    • 4.12.3.5 strftime函数

上一篇: 下一篇: