Solved

Need to get system date/time

Posted on 1998-05-15
3
782 Views
Last Modified: 2013-12-26
I need to get the system date and time in 'C' (ansi).  

In Windows, I use the following code to do so:
_strtime(time_string);
time_string[2] = '\0';
time_string[5] = '\0'
hours = atoi(&time_string[0]);
minutes = atoi(&time_string[3]);

_strdate(date_string);
date_string[2] = '\0';
date_string[5] = '\0';
date_string[8] = '\0';
month = atoi(&date_string[0]);
day = atoi(&date_string[3]);
year = atoi(&date_string[6]);

This code will not compile in redHat linux 5.0.  I believe this is faily primitive code
though. What I would actually like, is to get the time in a string like so: "9:45 AM",
and the date like so: "January 25, 1998"  Is there a way to easily do this in Linux/Unix??

What about calling the Tzset() function -  Is this necessary??  when I do a `date` in the
unix environment, it seems correct.


0
Comment
Question by:cwilliso
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 1293433
#include <time.h>
time_t t[1];
char *date;
*t = time(0);
date=asctime(localtime(t));

0
 
LVL 2

Accepted Solution

by:
António Sargento earned 100 total points
ID: 1293434
You have the function time() that return the system time, i.e., the number of seconds from January 1, 1970.
You could use this function like this:

long t=time((time_t*)0);

Do not forget to include the time.h

Then with this value you could convert it to any format that you want.
Exist several functions and I will enumerate a few:

char *ctime(long /* the return value of time() */);
output: Fri May 15 23:52:00 1998

You could use also the functions gmttime, localtime asctime. These functions return
a struct (struct tm) that has all the information associated to a date (week day, month, etc).

You could check the time.h and see the manual pages of these functions for further details.



0
 
LVL 84

Expert Comment

by:ozo
ID: 1293435
#include <time.h>
time_t t[1];
struct tm *tm;
int hours,minutes,month,day,year,dst;
*t = time(0);
tm=localtime(t);
hours = tm->tm_hour;
minutes = tm->tm_min;
month = tm->tm_mon+1;
day = tm->tm_mday;
year = tm->tm_year+1900;
dst = tm->tm_isdst;

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
method notes when mouse over in eclipse 5 96
format the code in java 6 117
zeroMAx challenge 20 135
Work with App store 7 122
Introduction: Dynamic window placements and drawing on a form, simple usage of windows registry as a storage place for information. Continuing from the first article about sudoku.  There we have designed the application and put a lot of user int…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question