生成时间<time.h>

本文详细介绍了C语言中time.h头文件的使用,包括获取当前时间、时间戳转换、时间结构体tm的成员以及相关函数如ctime、localtime、mktime等的用法。通过示例代码展示了如何利用time.h进行日期和时间的处理。
摘要由CSDN通过智能技术生成
#include<stdio.h>
#include<time.h>

const char* name()
{
    time_t now;//typedef long time_t
    time(&now);//从197-01-01 00:00:00到现在的秒数
    //上面两句话可以简写:time_t now =time(NULL);
    /*
    time_t time(time_t *tdd);
    if tod is not a NULL pointer,the function stores the current calender time in *tod.
    The function returns the current calender time,if the target environment can determine it;otherwise it returns -1;
    */
    printf("%ld \n",now);

    struct tm* timeinfo = localtime(&now);
    /*
    struct tm *localtime(const time_t *);

    struct tm
    {
        int    tm_sec;   //Seconds [0,60].
        int    tm_min;   //Minutes [0,59].
        int    tm_hour;  //Hour [0,23].
        int    tm_mday;  //Day of month [1,31].
        int    tm_mon;   //Month of year [0,11].
        int    tm_year;  //Years since 1900.
        int    tm_wday;  //Day of week [0,6] (Sunday =0).
        int    tm_yday;  //Day of year [0,365].
        int    tm_isdst; //Daylight Savings flag.
        }

    */

    //sprintf(buf,"%s",asctime(timeinfo));

    static char buf[100]={0};
    sprintf(buf,"%s_%04d-%02d-%02d_%02d%02d%02d.%s\n","IMG",
    timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,
    timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec,"jpg");
    return buf;
}

int main()
{
    puts(name());
    return 0;
}

C语言中time.h用法详解https://mp.weixin.qq.com/s?src=11×tamp=1635566420&ver=3405&signature=E9-pXiufen44NkqJN3JCmNK77HifAEbYPfQ8FRoBbvb-mBQk2ukKqSTAPFxnsBglCAeiPybu0KNTPA-24L28zwRcKtOhv9wyjoR83gKSE8VhoaRRG4HfLABjut8HsU9s&new=1 

time.h(0P)                     POSIX Programmer's Manual                     time.h(0P)

PROLOG
       This  manual page is part of the POSIX Programmer's Manual.  The Linux implemen‐
       tation of this interface may differ (consult the corresponding Linux manual page
       for  details  of  Linux  behavior),  or  the interface may not be implemented on
       Linux.

NAME
       time.h — time types

SYNOPSIS
       #include <time.h>

DESCRIPTION
       Some of the functionality described on this reference  page  extends  the  ISO C
       standard.  Applications shall define the appropriate feature test macro (see the
       System Interfaces volume of POSIX.1‐2008, Section 2.2, The Compilation  Environ‐
       ment) to enable the visibility of these symbols in this header.

       The <time.h> header shall define the clock_t, size_t, time_t, types as described
       in <sys/types.h>.

       The <time.h> header shall define the clockid_t and timer_t types as described in
       <sys/types.h>.

       The <time.h> header shall define the locale_t type as described in <locale.h>.

       The <time.h> header shall define the pid_t type as described in <sys/types.h>.

       The  tag  sigevent shall be declared as naming an incomplete structure type, the
       contents of which are described in the <signal.h> header.

       The <time.h> header shall declare the tm structure, which shall include at least
       the following members:

           int    tm_sec   Seconds [0,60].
           int    tm_min   Minutes [0,59].
           int    tm_hour  Hour [0,23].
           int    tm_mday  Day of month [1,31].
           int    tm_mon   Month of year [0,11].
           int    tm_year  Years since 1900.
           int    tm_wday  Day of week [0,6] (Sunday =0).
           int    tm_yday  Day of year [0,365].
           int    tm_isdst Daylight Savings flag.

       The value of tm_isdst shall be positive if Daylight Savings Time is in effect, 0
       if Daylight Savings Time is not in effect, and negative if  the  information  is
       not available.

       The <time.h> header shall declare the timespec structure, which shall include at
       least the following members:

           time_t  tv_sec    Seconds.
           long    tv_nsec   Nanoseconds.

       The <time.h> header shall also declare the  itimerspec  structure,  which  shall
       include at least the following members:

           struct timespec  it_interval  Timer period.
           struct timespec  it_value     Timer expiration.

       The <time.h> header shall define the following macros:

       NULL          As described in <stddef.h>.

       CLOCKS_PER_SEC
                     A  number  used to convert the value returned by the clock() func‐
                     tion into seconds. The value shall  be  an  expression  with  type
                     clock_t.   The  value of CLOCKS_PER_SEC shall be 1 million on XSI-
                     conformant systems. However, it may be variable on other  systems,
                     and it should not be assumed that CLOCKS_PER_SEC is a compile-time
                     constant.

       The <time.h> header shall define the following symbolic  constants.  The  values
       shall have a type that is assignment-compatible with clockid_t.

       CLOCK_MONOTONIC
                     The  identifier  for  the  system-wide  monotonic  clock, which is
                     defined as a clock measuring real time, whose value cannot be  set
                     via  clock_settime()  and  which cannot have negative clock jumps.
                     The maximum possible clock jump shall be implementation-defined.

       CLOCK_PROCESS_CPUTIME_ID
                     The identifier of the CPU-time clock associated with  the  process
                     making a clock() or timer*() function call.

       CLOCK_REALTIME
                     The identifier of the system-wide clock measuring real time.

       CLOCK_THREAD_CPUTIME_ID
                     The  identifier  of  the CPU-time clock associated with the thread
                     making a clock() or timer*() function call.

       The <time.h> header shall define the following symbolic constant:

       TIMER_ABSTIME Flag indicating time  is  absolute.  For  functions  taking  timer
                     objects, this refers to the clock associated with the timer.

       The  <time.h>  header shall provide a declaration or definition for getdate_err.
       The getdate_err symbol shall expand to an expression of type int.  It is unspec‐
       ified  whether  getdate_err  is  a macro or an identifier declared with external
       linkage, and whether or not it is a modifiable lvalue. If a macro definition  is
       suppressed  in order to access an actual object, or a program defines an identi‐
       fier with the name getdate_err, the behavior is undefined.

       The following shall be declared as functions and may also be defined as  macros.
       Function prototypes shall be provided.

           char      *asctime(const struct tm *);
           char      *asctime_r(const struct tm *restrict, char *restrict);
           clock_t    clock(void);
           int        clock_getcpuclockid(pid_t, clockid_t *);
           int        clock_getres(clockid_t, struct timespec *);
           int        clock_gettime(clockid_t, struct timespec *);
           int        clock_nanosleep(clockid_t, int, const struct timespec *,
                          struct timespec *);
           int        clock_settime(clockid_t, const struct timespec *);
           char      *ctime(const time_t *);
           char      *ctime_r(const time_t *, char *);
           double     difftime(time_t, time_t);
           struct tm *getdate(const char *);
           struct tm *gmtime(const time_t *);
           struct tm *gmtime_r(const time_t *restrict, struct tm *restrict);
           struct tm *localtime(const time_t *);
           struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
           time_t     mktime(struct tm *);
           int        nanosleep(const struct timespec *, struct timespec *);
           size_t     strftime(char *restrict, size_t, const char *restrict,
                      const struct tm *restrict);
           size_t     strftime_l(char *restrict, size_t, const char *restrict,
                          const struct tm *restrict, locale_t);
           char      *strptime(const char *restrict, const char *restrict,
                          struct tm *restrict);
           time_t     time(time_t *);
           int        timer_create(clockid_t, struct sigevent *restrict,
                          timer_t *restrict);
           int        timer_delete(timer_t);
           int        timer_getoverrun(timer_t);
           int        timer_gettime(timer_t, struct itimerspec *);
           int        timer_settime(timer_t, int, const struct itimerspec *restrict,
                          struct itimerspec *restrict);
           void       tzset(void);

       The <time.h> header shall declare the following as variables:

           extern int    daylight;
           extern long   timezone;
           extern char  *tzname[];

       Inclusion  of  the  <time.h>  header may make visible all symbols from the <sig‐
       nal.h> header.

       The following sections are informative.

APPLICATION USAGE
       The range [0,60] for tm_sec allows for the occasional leap second.

       tm_year is a signed value; therefore, years before 1900 may be represented.

       To obtain the number of clock ticks per second returned by the times() function,
       applications should call sysconf(_SC_CLK_TCK).

RATIONALE
       The range [0,60] seconds allows for positive or negative leap seconds.  The for‐
       mal definition of UTC does not permit double leap seconds,  so  all  mention  of
       double  leap  seconds  has been removed, and the range shortened from the former
       [0,61] seconds seen in earlier versions of this standard.

FUTURE DIRECTIONS
       None.

SEE ALSO
       <locale.h>, <signal.h>, <stddef.h>, <sys_types.h>

       The System Interfaces volume of POSIX.1‐2008, Section 2.2, The Compilation Envi‐
       ronment, asctime(), clock(), clock_getcpuclockid(), clock_getres(),
       clock_nanosleep(), ctime(), difftime(), getdate(), gmtime(), localtime(),
       mktime(), mq_receive(), mq_send(), nanosleep(), pthread_getcpuclockid(),
       pthread_mutex_timedlock(), pthread_rwlock_timedrdlock(), pthread_rwlock_timedwr‐
       lock(), sem_timedwait(), strftime(), strptime(), sysconf(), time(), timer_cre‐
       ate(), timer_delete(), timer_getoverrun(), tzset(), utime()

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form from  IEEE
       Std  1003.1, 2013 Edition, Standard for Information Technology -- Portable Oper‐
       ating System Interface (POSIX), The Open  Group  Base  Specifications  Issue  7,
       Copyright (C) 2013 by the Institute of Electrical and Electronics Engineers, Inc
       and The Open Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1
       applied.)  In the event of any discrepancy between this version and the original
       IEEE and The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee  document.  The  original  Standard  can  be obtained online at
       http://www.unix.org/online.html .

       Any typographical or formatting errors that appear in this page are most  likely
       to  have  been  introduced during the conversion of the source files to man page
       format. To report such errors, see  https://www.kernel.org/doc/man-pages/report‐
       ing_bugs.html .

IEEE/The Open Group                       2013                               time.h(0P)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值