DateTimeOffset.Now Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a DateTimeOffset object that is set to the current date and time on the current computer, with the offset set to the local time's offset from Coordinated Universal Time (UTC).
public:
static property DateTimeOffset Now { DateTimeOffset get(); };
public static DateTimeOffset Now { get; }
static member Now : DateTimeOffset
Public Shared ReadOnly Property Now As DateTimeOffset
Property Value
A DateTimeOffset object whose date and time is the current local time and whose offset is the local time zone's offset from Coordinated Universal Time (UTC).
Examples
The following example uses the Now property to retrieve the current date and time and displays it by using each of the standard date and time format strings supported by the DateTimeOffset type.
using System;
public class Example
{
public static void Main()
{
String[] fmtStrings = { "d", "D", "f", "F", "g", "G", "M",
"R", "s", "t", "T", "u", "y" };
DateTimeOffset value = DateTimeOffset.Now;
// Display date in default format.
Console.WriteLine(value);
Console.WriteLine();
// Display date using each of the specified formats.
foreach (var fmtString in fmtStrings)
Console.WriteLine("{0} --> {1}",
fmtString, value.ToString(fmtString));
}
}
// The example displays output similar to the following:
// 11/19/2012 10:57:11 AM -08:00
//
// d --> 11/19/2012
// D --> Monday, November 19, 2012
// f --> Monday, November 19, 2012 10:57 AM
// F --> Monday, November 19, 2012 10:57:11 AM
// g --> 11/19/2012 10:57 AM
// G --> 11/19/2012 10:57:11 AM
// M --> November 19
// R --> Mon, 19 Nov 2012 18:57:11 GMT
// s --> 2012-11-19T10:57:11
// t --> 10:57 AM
// T --> 10:57:11 AM
// u --> 2012-11-19 18:57:11Z
// y --> November, 2012
open System
let fmtStrings =
[ "d"; "D"; "f"; "F"; "g"; "G"; "M"
"R"; "s"; "t"; "T"; "u"; "y" ]
let value = DateTimeOffset.Now
// Display date in default format.
printfn $"{value}\n"
// Display date using each of the specified formats.
for fmtString in fmtStrings do
printfn $"{fmtString} --> {value.ToString fmtString}"
// The example displays output similar to the following:
// 11/19/2012 10:57:11 AM -08:00
//
// d --> 11/19/2012
// D --> Monday, November 19, 2012
// f --> Monday, November 19, 2012 10:57 AM
// F --> Monday, November 19, 2012 10:57:11 AM
// g --> 11/19/2012 10:57 AM
// G --> 11/19/2012 10:57:11 AM
// M --> November 19
// R --> Mon, 19 Nov 2012 18:57:11 GMT
// s --> 2012-11-19T10:57:11
// t --> 10:57 AM
// T --> 10:57:11 AM
// u --> 2012-11-19 18:57:11Z
// y --> November, 2012
Module Example
Public Sub Main()
Dim fmtStrings() As String = { "d", "D", "f", "F", "g", "G",
"M", "R", "s", "t", "T", "u",
"y" }
Dim value As DateTimeOffset = DateTimeOffset.Now
' Display date in default format.
Console.WriteLine(value)
Console.WriteLine()
' Display date using each of the specified formats.
For Each fmtString in fmtStrings
Console.WriteLine("{0} --> {1}",
fmtString, value.ToString(fmtString))
Next
End Sub
End Module
' The example displays output similar to the following:
' 11/19/2012 10:57:11 AM -08:00
'
' d --> 11/19/2012
' D --> Monday, November 19, 2012
' f --> Monday, November 19, 2012 10:57 AM
' F --> Monday, November 19, 2012 10:57:11 AM
' g --> 11/19/2012 10:57 AM
' G --> 11/19/2012 10:57:11 AM
' M --> November 19
' R --> Mon, 19 Nov 2012 18:57:11 GMT
' s --> 2012-11-19T10:57:11
' t --> 10:57 AM
' T --> 10:57:11 AM
' u --> 2012-11-19 18:57:11Z
' y --> November, 2012
The following example uses the Now and Millisecond properties to determine the resolution of the system clock. It displays the time only when the value of its millisecond component has changed.
DateTimeOffset dto;
int ctr = 0;
int ms = 0;
do {
dto = DateTimeOffset.Now;
if (dto.Millisecond != ms)
{
ms = dto.Millisecond;
Console.WriteLine("{0}:{1:d3} ms. {2}",
dto.ToString("M/d/yyyy h:mm:ss"),
ms, dto.ToString("zzz"));
ctr++;
}
} while (ctr < 100);
let mutable ms = 0
for _ = 0 to 99 do
let dto = DateTimeOffset.Now
if dto.Millisecond <> ms then
ms <- dto.Millisecond
printfn $"""{dto.ToString "M/d/yyyy h:mm:ss"}:{ms:d3} ms. {dto:zzz}"""
Dim dto As DateTimeOffset
Dim ctr As Integer
Dim ms As Integer
Do
dto = DateTimeOffset.Now
If dto.Millisecond <> ms Then
ms = dto.Millisecond
Console.WriteLine("{0}:{1:d3} ms. {2}", _
dto.ToString("M/d/yyyy h:mm:ss"), _
ms, dto.ToString("zzz"))
ctr += 1
End If
Loop While ctr < 100
Remarks
The precision of the current local time's millisecond component depends on the resolution of the system clock. On Windows NT 3.5 and later, and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.