First, you got to under how DateTime value is represented in .Net, read
this[
^]:
Quote:
The DateTime value type represents dates and times with values ranging from 12:00:00 midnight, January 1, 0001 Anno Domini, or A.D. (also known as Common Era, or C.E.) through 11:59:59 P.M., December 31, 9999 A.D. (C.E.) These limits are stored as read-only values in the MinValue and MaxValue fields.
Time values are measured in 100-nanosecond units called ticks, and a particular date is expressed as the number of ticks that have elapsed since 12:00 midnight, January 1, 0001 A.D. (C.E.) in the Gregorian calendar. For example, a tick value of 31241376000000000L represents Friday, January 01, 0100 12:00:00 midnight.
To put it simply, the datatime value is just a running
ticks[
^] starting from 0 ticks on January 1, 0001.
Run this demo:
using System;
public class Program
{
public static void Main()
{
DateTime dateTimeMin = DateTime.MinValue;
DateTime dateTimeMax = DateTime.MaxValue;
long minTicks = dateTimeMin.Ticks;
long maxTicks = dateTimeMax.Ticks;
Console.WriteLine("Min DateTime {0} has ticks of {1}", dateTimeMin, minTicks);
Console.WriteLine("Max DateTime {0} has ticks of {1}", dateTimeMax, maxTicks);
}
}
You get:
Min DateTime 1/1/0001 12:00:00 AM has ticks of 0
Max DateTime 12/31/9999 11:59:59 PM has ticks of 3155378975999999999
To get the number of ticks elapsed at any instance, do this
DateTime.Now.Ticks
Coming back to your question, No, there is neither 12 hrs nor 24 hrs datetime value, the many date time formats that you see in this world are man-made, they exist to fit in the diverse culture needs. But the root values of them all are running ticks in case of .Net framework.