311

How do you get the current time (not date AND time)?

Example: 5:42:12 PM

Yahia
  • 69,653
  • 9
  • 115
  • 144

21 Answers21

432

DateTime.Now.TimeOfDay gives it to you as a TimeSpan (from midnight).

DateTime.Now.ToString("h:mm:ss tt") gives it to you as a string.

DateTime reference: https://msdn.microsoft.com/en-us/library/system.datetime

HEDMON
  • 727
  • 10
  • 24
Mark Brackett
  • 84,552
  • 17
  • 108
  • 152
61

Try this:

DateTime.Now.ToString("HH:mm:ss tt");

For other formats, you can check this site: C# DateTime Format

Nick is tired
  • 6,860
  • 20
  • 39
  • 51
Musikero31
  • 3,115
  • 6
  • 39
  • 60
47

Another option using String.Format()

string.Format("{0:HH:mm:ss tt}", DateTime.Now)
Chris Fulstow
  • 41,170
  • 10
  • 86
  • 110
28

Current time with AM/PM designator:

DateTime.Now.ToString("hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("hh:mm:ss.fff tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)

Current time using 0-23 hour notation:

DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("HH:mm:ss.fff", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Oppositional
  • 11,141
  • 6
  • 50
  • 63
  • After reading the question again, I think you are not wrong. But I am not wrong either because if this is a general question as you propose, then most of the answerers have misunderstood the question since their answers are not general but specific. All in all, I think the question could have been much clearer. By the way, what does "I undid your -1's" mean? – anar khalilov Jan 04 '14 at 17:54
  • 1
    Had there not be any misundestandings they would have put all versions not _something_ that comes first on mind. We all know that SO is very generous to people who try hard to answer. But yeah, let's not deviate from the topic much. All I can say is that I will review all my -1's and decide again. – anar khalilov Jan 04 '14 at 18:14
24
DateTime.Now.TimeOfDay

or

DateTime.Now.ToShortTimeString()
Ben
  • 6,023
  • 1
  • 25
  • 40
benPearce
  • 37,735
  • 14
  • 62
  • 96
18
DateTime.Now.ToString("yyyy-MM-dd h:mm:ss tt");

just Try It's use full to your Need

Gupta
  • 314
  • 2
  • 8
17

Here we go:

 DateTime time = DateTime.Now;
 Console.WriteLine(time.ToString("h:mm:ss tt"));
Programmer
  • 121,791
  • 22
  • 236
  • 328
Husni Salax
  • 1,968
  • 1
  • 19
  • 29
14

This will be better, Try This one

    DateTime.Now.ToShortTimeString();

For this you don't need to specify the Format for the Time.

Sanjay
  • 342
  • 2
  • 9
13

Datetime.TimeOfDay returns a TimeSpan and might be what you are looking for.

MD. Khairul Basar
  • 4,976
  • 14
  • 41
  • 59
Stefan Schultze
  • 9,240
  • 6
  • 35
  • 42
8

Get the current date and time, then just use the time portion of it. Look at the possibilities for formatting a date time string in the MSDN docs.

Greg D
  • 43,259
  • 14
  • 84
  • 117
7

I think this code will solve your problem

DateTime.Now.ToString("HH:mm")
farsam
  • 89
  • 1
  • 4
  • The `ToString` method has already been covered by several other solutions. In addition, this also does not capture seconds or AM/PM time. – General Grievance Oct 08 '20 at 14:56
6

This can be a possible solution:

DateTime now = DateTime.Now;
string time = now.ToString("T");
Regent
  • 5,142
  • 3
  • 21
  • 35
Hannan Hossain
  • 740
  • 1
  • 12
  • 23
4
var CurDate= DateTime.Now;
CurDate.Hour;
CurDate.Minute;
CurDate.Millisecond
Sarat Chandra
  • 5,636
  • 34
  • 30
3
MyEmail.Body = string.Format("The validation is done at {0:HH:mm:ss} Hrs.",DateTime.Now);

Can Use {0:HH:mm:ss}, {0:HH:mm:ss.fff}, {0:DD/mm/yyy HH:mm:ss}, etc...

David Castro
  • 1,773
  • 21
  • 21
3

I'm experimenting with this also and find these pages helpful as well. First the main class... https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx

Now some specifier formats for the ToString method... https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(v=vs.110).aspx

Example:

using System;

namespace JD
{
    class Program
    {
        public static DateTime get_UTCNow()
        {
            DateTime UTCNow = DateTime.UtcNow;
            int year = UTCNow.Year;
            int month = UTCNow.Month;
            int day = UTCNow.Day;
            int hour = UTCNow.Hour;
            int min = UTCNow.Minute;
            int sec = UTCNow.Second;
            DateTime datetime = new DateTime(year, month, day, hour, min, sec);
            return datetime;
        }

        static void Main(string[] args)
        {
            DateTime datetime = get_UTCNow();            

            string time_UTC = datetime.TimeOfDay.ToString();
            Console.WriteLine(time_UTC);

            Console.ReadLine();

        }
    }
}

I threw that TimeOfDay method in there just to show that you get a default of 24 hour time as is stated "the time from midnight"

You may use my geter method(); :-D

Douglas G. Allen
  • 2,203
  • 21
  • 20
3

To calculate the current datetime:

DateTime theDate = DateTime.UtcNow;

string custom = theDate.ToString("d");

MessageBox.Show(custom);
Jason Sturges
  • 15,855
  • 14
  • 59
  • 80
sadhana
  • 39
  • 1
2

very simple DateTime.Now.ToString("hh:mm:ss tt")

Ranjit Singh
  • 3,715
  • 1
  • 21
  • 35
2

This will show you only the current time, in 24 hour format:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now.ToLongTimeString().ToString());
        Console.WriteLine(DateTime.Now.ToShortTimeString().ToString());
        Console.ReadLine();
    }
}

Regards
K

Khb
  • 1,423
  • 9
  • 9
2

Use the code below

DateTime.Now.ToString("h:mm:ss tt")
Cray
  • 2,774
  • 7
  • 22
  • 32
0

In my case I have used the below code to get time alone from DateTime.

var currentDateTime = DateTime.Now; 
var currentTimeAlone = new TimeSpan(currentDateTime.Hour, currentDateTime.Minute,    currentDateTime.Second); 
Console.WriteLine(currentTimeAlone);

Hope it helps for someone. :)

Santhosh N
  • 62
  • 4
-7

Try this one. Its working for me in 3tier Architecture Web Application.

"'" + DateTime.Now.ToString() + "'"

Please remember the Single Quotes in the insert Query.

For example:

string Command = @"Insert Into CONFIG_USERS(smallint_empID,smallint_userID,str_username,str_pwd,str_secquestion,str_secanswer,tinyint_roleID,str_phone,str_email,Dt_createdOn,Dt_modifiedOn) values ("
 + u.Employees + ","
 + u.UserID + ",'"
 + u.Username + "','"
 + u.GetPassword() + "','"
 + u.SecQ + "','"
 + u.SecA + "',"
 + u.RoleID + ",'"
 + u.Phone + "','"
 + u.Email + "','"
 + DateTime.Now.ToString() + "','"
 + DateTime.Now.ToString() + "')";

The DateTime insertion at the end of the line.

Henk van Boeijen
  • 7,357
  • 6
  • 32
  • 42