DateTimeOffset.Now Property

Definition

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.

Applies to

See also