TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C# DateTime.Now: Current Time

This C# example uses the DateTime.Now property to get the current time.

DateTime.Now returns the current time and day.

The struct it returns can be stored as a field or property in a class. We look into this property and its implementation—where it accesses the operating system for the current time.

Class

Example. The syntax used for DateTime.Now is that of a static property. This means you do not need to call it on an instance of the DateTime struct. Also, you do not use it with parenthesis or parameters.

Here: This code example uses DateTime.Now, and stores it as a property in a class.

C# program that uses DateTime.Now

using System;

class Program
{
    class Employee
    {
	public DateTime HiringDate { get; set; }
    }

    static void Main()
    {
	//
	// Write the current date and time.
	//
	DateTime now = DateTime.Now;
	Console.WriteLine(now);

	//
	// Store a DateTime in a class.
	//
	Employee employee = new Employee() { HiringDate = now };
	Console.WriteLine(employee.HiringDate);
    }
}

Output

10/9/2014 9:45:06 PM
10/9/2014 9:45:06 PM

We see the "now" variable being assigned to DateTime.Now. At this point, the "now" local variable contains the timestamp of the current DateTime. When you pass it to Console.WriteLine, it will be printed to the screen.

Console.WriteLine

Note: There are many ways to format your DateTimes, but that is not in the scope of this article.

Using DateTime in classes. The final lines of the example use the collection initializer syntax to set the HiringDate property to the DateTime.Now value. This means that the employee was just hired.

Format. It is confusing and tricky to display dates in the exact way you want them in .NET. However, you can find some resources for this on this site. In this respect, DateTime.Now is simply a regular DateTime, with no special meaning.

DateTime Format

Copy. How are DateTime variables copied? When you assign a local variable to DateTime.Now, the internal value of DateTime.Now is copied. Your local variable will remain constant unless you reassign it.

Here: We pause (using Thread.Sleep) between assigning a local DateTime and then displaying it again. The values printed are the same.

Sleep Method Pauses Programs

C# program that assigns to DateTime.Now

using System;

class Program
{
    static void Main()
    {
	DateTime now = DateTime.Now; // <-- Value is copied into local
	Console.WriteLine(now);
	System.Threading.Thread.Sleep(10000);

	//
	// This variable has the same value as before.
	//
	Console.WriteLine(now);
    }
}

Output
    (Depends on when you run the program.)

2/25/2014 11:12:13 AM

Internals. Normally, properties in C# are retrieved based on a field that does not change and is fast to access. DateTime.Now is a property, but it is much slower and always changes. For these reasons, some experts regard DateTime.Now as a mistake.

Tip: Please see the book CLR via C# (Second Edition) by Jeffrey Richter. It has further explanations.

Microsoft Learning

Performance. If you are working on a high-performance application, and need to use DateTime.Now, do not call it multiple times. Instead, cache it in a local variable and pass that as a parameter. This avoids the implementation.

Summary. We saw that DateTime.Now is a useful and convenient way to access the current time. When you assign your variable to DateTime.Now, the value is copied and will not update later. But it is not fast like a normal property.

DateTime.Today


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf