How to use Date and Time in the Unix, Bash shell script?

How to configure Date and Timem in Unix bash chell script and then write the message on the screen or into a file?
Please comment what else neededs to be added (or may be deleted from) to my code below:  

# Date and Time configuration

DATETIMESTAMP= date     
DATESTAMP=$DATETIMESTAMP

echo Date: $DATESTAMP    Time:  $DATETIMESTAMP

Open in new window


Thank you!
labradorchikAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

farzanjCommented:
DATETIMESTAMP=$(date)
DATESTAMP=$(date "+%Y/%m/%d")
TIMESTAMP=$(date "+%T")
0
labradorchikAuthor Commented:
Could you please give an example of writing these two on the screen or into a different file?
Thank you!
0
petr_hlucinCommented:
Use "date" (http://oss.sgi.com/LDP/LDP/sag/x2757.html) command to set current date and time, e.g. (to set date to March 22, 2012 16:30):

date 032216302012
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

petr_hlucinCommented:
To write to a screen use:
echo $TIMESTAMP

To write into a file use:
echo $TIMESTAMP > /path/to/file
0
farzanjCommented:
On Screen:
DATETIMESTAMP=$(date)
DATESTAMP=$(date "+%Y/%m/%d")
TIMESTAMP=$(date "+%T")
echo "Date Time Stamp : $DATETIMESTAMP"
echo "Date Stamp : $DATESTAMP"
echo "Time Stamp : $TIMESTAMP"

Open in new window


To a file
DATETIMESTAMP=$(date)
DATESTAMP=$(date "+%Y/%m/%d")
TIMESTAMP=$(date "+%T")
echo "Date Time Stamp : $DATETIMESTAMP" >> file
echo "Date Stamp : $DATESTAMP" >> file
echo "Time Stamp : $TIMESTAMP" >> file

Open in new window

0
woolmilkporcCommented:
Your script will not work.

In Unix you basically have to capture the output of the respective commands if you want to have it in a variable.

The syntax to assign the output of a command is

VARIABLE=$( command )

If it's just for displaying - issue the commands directly and that's it.

In your case it's the "date" command which has quite a lot of formatting options:
       %a
            Displays the locale's abbreviated weekday name.
       %A
            Displays the locale's full weekday name.
       %b
            Displays the locale's abbreviated month name.
       %B
            Displays the locale's full month name.
       %c
            Displays the locale's appropriate date and time representation.
            This is the default.
       %C
            Displays the first two digits of the four-digit year as a decimal
            number (00-99). A year is divided by 100 and truncated to an
            integer.
       %d
            Displays the day of the month as a decimal number (01-31). In a
            two-digit field, a 0 is used as leading space fill.
       %D
            Displays the date in the format equivalent to %m/%d/%y.
       %e
            Displays the day of the month as a decimal number (1-31). In a
            two-digit field, a blank space is used as leading space fill.
       %h
            Displays the locale's abbreviated month name (a synonym for %b).
       %H
            Displays the hour (24-hour clock) as a decimal number (00-23).
       %I
            Displays the hour (12-hour clock) as a decimal number (01-12).
       %j
            Displays the day of year as a decimal number (001-366).
       %k

            Displays the 24-hour-clock hour clock as a right-justified,
            space-filled number ( 0 to 23).
       %m
            Displays the month of year as a decimal number (01-12).
       %M
            Displays the minutes as a decimal number (00-59).
       %n
            Inserts a <new-line> character.
       %p
            Displays the locale's equivalent of either AM or PM.
       %r
            Displays 12-hour clock time (01-12) using the AM-PM notation; in
            the POSIX locale, this is equivalent to %I:%M:%S %p.
       %S
            Displays the seconds as a decimal number (00- 59).
       %s
            Displays the number of seconds since January 1, 1970, Coordinated
            Universal Time (CUT).
       %t
            Inserts a <tab> character.
       %T
            Displays the 24-hour clock (00-23) in the format equivalent to
            HH:MM:SS .
       %u
            Displays the weekday as a decimal number from 1-7 (Sunday = 7).
            Refer to the %w field descriptor.
       %U
            Displays week of the year(Sunday as the first day of the week) as
            a decimal number[00 - 53] . All days in a new year preceding the
            first Sunday are considered to be in week 0.
       %V
            Displays the week of the year as a decimal number from 01-53
            (Monday is used as the first day of the week). If the week
            containing January 1 has four or more days in the new year, then
            it is considered week 01; otherwise, it is week 53 of the previous
            year.
       %w
            Displays the weekday as a decimal number from 0-6 (Sunday = 0).
            Refer to the %u field descriptor.
       %W
            Displays the week number of the year as a decimal number (00-53)
            counting Monday as the first day of the week.
       %x
            Displays the locale's appropriate date representation.
       %X
            Displays the locale's appropriate time representation.
       %y
            Displays the last two numbers of the year (00-99).
       %Y
            Displays the four-digit year as a decimal number.
       %Z
            Displays the time-zone name, or no characters if no time zone is
            determinable.
       %%
            Displays a % (percent sign) character.

Open in new window

. The above is from "man date".

A simple version showing e.g. "2012-03-21" is

Datestamp=$(date "+%Y-%m-%d")
echo $Datestamp

and to show the time as e.g. "14:15:16" do

Timestamp=$(date "+%H:%M:%S")
echo $Timestamp

As I said, there are lots and lots of formatting options. . .
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
labradorchikAuthor Commented:
Thank you everyone!! Script works fine now.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Unix OS

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.