#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)