A detailed _c language for acquiring time functions based on Linux

Source: Internet
Author: User
Tags current time local time string format time and date
//-------------------------------------------------------------//
Asctime (representing time and date in string format)
#include <time.h>
Defining functions
char * asctime (const struct TM * timeptr);
Function description
asctime () converts the information in the TM structure referred to in the parameter timeptr to the time date representation method used in the real world, and then returns the result in string form. This function has been converted to local time by the time zone, and the string is in the format: "Wed June 21:49:08 1993\n"
return value
This string may be corrupted if the relevant time-date function is called again. This function differs from CTime in that the parameters passed in are different structures.
Additional Instructions
Returns a string representing the current local time date.
Example
Copy Code code as follows:

#include <time.h>
Main ()
{
time_t TIMEP;
Time (&TIMEP);
printf ("%s", Asctime (Gmtime (&TIMEP));
}
Perform
Sat Oct 28 02:10:06 2000

//-------------------------------------------------------------//
CTime (representing time and date in string format)
Table header File
#include <time.h>
Defining functions
Char *ctime (const time_t *TIMEP);
Function description
CTime () converts the information in the time_t structure of the argument TIMEP to the time-date representation used in the real world, and then returns the result as a string form. This function has been converted to local time by the time zone, and the string is in the form "Wed June 21:49:08 1993\n". This string may be corrupted if the relevant time-date function is called again.
return value
Returns a string representing the current local time date.
Example
Copy Code code as follows:

#include <time.h>
Main ()
{
time_t TIMEP;
Time (&TIMEP);
printf ("%s", CTime (&TIMEP));
}
Perform
Sat Oct 28 10:12:05 2000

Gettimeofday (Get the current time)
Table header File
#include <sys/time.h>
#include <unistd.h>
Defining functions
int gettimeofday (struct timeval * TV, struct timezone * tz)
Function description
Gettimeofday () returns the current time with the structure that the TV refers to, and the local time zone information is placed in the structure referred to by TZ.
The TIMEVAL structure is defined as:
struct timeval{
Long tv_sec; /* SEC * *
Long tv_usec; /* microsecond * *
};
The timezone structure is defined as:
struct timezone{
int tz_minuteswest; /* and Greenwich TIME DIFFERENCE how many minutes * *
int tz_dsttime; * The state of Daylight saving time * *
};
Both of these structures are defined in/usr/include/sys/time.h. The state represented by Tz_dsttime is as follows
Dst_none/* Do not use * *
DST_USA/* USA * *
Dst_aust/* Australia * *
Dst_wet/* Western Europe * *
Dst_met/* Central Europe *
Dst_eet/* Eastern Europe *
Dst_can/* Canada * *
DST_GB/* Britannia *
Dst_rum/* Romania * *
Dst_tur/* Turkey * *
Dst_austalt/* Australia (after 1986) * *
return value
Success returns 0, the failure returns 1, and the error code is stored in errno. Additional instructions The memory space referred to by efault Pointer TV and TZ exceeds access permissions.
Example
Copy Code code as follows:

#include <sys/time.h>
#include <unistd.h>
Main () {
struct Timeval TV;
struct timezone tz;
Gettimeofday (&TV, &tz);
printf ("TV_SEC; %d\n ", tv,.tv_sec);
printf ("TV_USEC; %d\n ", tv.tv_usec);
printf ("Tz_minuteswest; %d\n ", tz.tz_minuteswest);
printf ("Tz_dsttime,%d\n", tz.tz_dsttime);
}
Perform
tv_sec:974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0

//-------------------------------------------------------------//
gmtime (get current time and date)
Table header File
#include <time.h>
Defining functions
struct Tm*gmtime (const TIME_T*TIMEP);
Function description
gmtime () converts the information in the time_t structure of the parameter TIMEP to the time-date representation used in the real world, and then returns the result from the structure TM.
The structure TM is defined as
struct TM
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int Tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
int TM_SEC represents the current number of seconds, with a normal range of 0-59, but allowed to 61 seconds
int Tm_min represents current score, range 0-59
int Tm_hour The number of hours from midnight, with a range of 0-23
int Tm_mday The number of days of the current month, range 01-31
int Tm_mon represents the current month, starting from January, ranging from 0-11
int tm_year number of years since 1900
int Tm_wday The number of days in a week, starting from Monday, the range is 0-6
int Tm_yday The number of days since January 1 this year, with a range of 0-365
int TM_ISDST flag for daylight saving time
The date returned by this function is not time zone conversion, but UTC time.
return value
Return Structure TM represents current UTC time
Example
Copy Code code as follows:

#include <time.h>
Main () {
Char *wday[]={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t TIMEP;
struct TM *p;
Time (&TIMEP);
P=gmtime (&TIMEP);
printf ("%d%d%d", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday);
printf ("%s%d;%d;%d\n", Wday[p->tm_wday], P->tm_hour, P->tm_min, p->tm_sec);
}
Perform
2000/10/28 Sat 8:15:38

//-------------------------------------------------------------//
localtime (get local current time and date)
Table header File
#include <time.h>
Defining functions
struct TM *localtime (const time_t * TIMEP);
Function description
LocalTime () Converts the information in the time_t structure of the parameter TIMEP to the time-date representation used in the real world, and then returns the result from the structure TM. Please refer to Gmtime () for the definition of structure TM. The time date returned by this function has been converted to a local time zone.
return value
Returns the structure TM representing the current local time.
Example
Copy Code code as follows:

#include <time.h>
Main () {
Char *wday[]={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t TIMEP;
struct TM *p;
Time (&TIMEP);
P=localtime (&TIMEP); * * Get local time/
printf ("%d%d%d", (1900+p->tm_year), (L+p->tm_mon), p->tm_mday);
printf ("%s%d:%d:%d\n", Wday[p->tm_wday],p->tm_hour, P->tm_min, p->tm_sec);
}
Perform
2000/10/28 Sat 11:12:22

//-------------------------------------------------------------//
Mktime (converts time structure data to elapsed seconds)
Table header File
#include <time.h>
Defining functions
time_t mktime (strcut TM * timeptr);
Function description
mktime () is used to convert the TM structure data referred to by the parameter timeptr to the number of seconds elapsed since the UTC time of 0 seconds from January 1, 1970 A.D.
return value
Returns the number of seconds elapsed.
Example
Copy Code code as follows:

/* Use time () to obtain the Times (seconds), using localtime ()
Convert to struct TM reuse Mktine () convert struct TM to original number of seconds * *
#include <time.h>
Main ()
{
time_t TIMEP;
Strcut TM *p;
Time (&TIMEP);
printf ("Time ():%d \ n", TIMEP);
P=localtime (&TIMEP);
TIMEP = Mktime (p);
printf ("Time ()->localtime ()->mktime ():%d\n", TIMEP);
}
Perform
Time (): 974943297
Time ()->localtime ()->mktime (): 974943297

//-------------------------------------------------------------//
Settimeofday (set current time)
Table header File
#include <sys/time.h>
#include <unistd.h>
Defining functions
int settimeofday (const struct timeval *tv,const struct timezone);
Function description
Settimeofday () sets the current time to the structure information that the TV refers to, and the local time zone information is set to the structure referred to by the TZ. For detailed instructions please refer to gettimeofday (). Note that only the root permission can be used to modify the time.
return value
Success returns 0, the failure returns 1, and the error code is stored in errno.
Error code
Eperm is not called Settimeofday () by root permission, and permissions are not sufficient.
Einval time zone or some data is incorrect and cannot be set correctly.
//-------------------------------------------------------------//
time (to get current)
Table header File
#include <time.h>
Defining functions
time_t Time (time_t *t);
Function description
This function returns the number of seconds elapsed from 0:0 UTC, January 1, 1970, from 0 seconds to the current time. If T is not a null pointer, this function also saves the return value to the memory referred to by the T pointer.
return value
Success returns the number of seconds, Failure returns ((time_t)-1) value, and the reason for the error is in errno.
Example
Copy Code code as follows:

#include <time.h>
Mian ()
{
int seconds= time ((time_t*) NULL);
printf ("%d\n", seconds);
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.