DateTime.SpecifyKind(DateTime, DateTimeKind) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый объект DateTime, имеющий то же количество тактов, что и заданный объект DateTime, но предназначенный для использования либо с местным временем, стандартом UTC, либо ни тем, ни другим, как задано значением DateTimeKind.
public:
static DateTime SpecifyKind(DateTime value, DateTimeKind kind);
public static DateTime SpecifyKind (DateTime value, DateTimeKind kind);
static member SpecifyKind : DateTime * DateTimeKind -> DateTime
Public Shared Function SpecifyKind (value As DateTime, kind As DateTimeKind) As DateTime
Параметры
- value
- DateTime
Дата и время.
- kind
- DateTimeKind
Одно из значений перечисления, указывающее, что представляет новый объект: локальное время, универсальное глобальное время (UTC), или ни то, ни другое.
Возвращаемое значение
Новый объект, имеющий то же количество тактов, что и объект, представленный параметром value
, и значение DateTimeKind, заданное параметром kind
.
Примеры
В следующем примере метод используется SpecifyKind для демонстрации Kind влияния ToLocalTime свойства на методы и ToUniversalTime преобразования.
// This code example demonstrates the DateTime Kind, Now, and
// UtcNow properties, and the SpecifyKind(), ToLocalTime(),
// and ToUniversalTime() methods.
open System
// Display the value and Kind property of a DateTime structure, the
// DateTime structure converted to local time, and the DateTime
// structure converted to universal time.
let datePatt = @"M/d/yyyy hh:mm:ss tt"
let display title (inputDt: DateTime) =
// Display the original DateTime.
let dispDt = inputDt
let dtString = dispDt.ToString datePatt
printfn $"%s{title} {dtString}, Kind = {dispDt.Kind}"
// Convert inputDt to local time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was universal time.
let dispDt = inputDt.ToLocalTime()
let dtString = dispDt.ToString datePatt
printfn $" ToLocalTime: {dtString}, Kind = {dispDt.Kind}"
// Convert inputDt to universal time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was local time.
let dispDt = inputDt.ToUniversalTime()
let dtString = dispDt.ToString datePatt
printfn $" ToUniversalTime: {dtString}, Kind = {dispDt.Kind}\n"
// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
let displayNow title (inputDt: DateTime) =
let dtString = inputDt.ToString datePatt
printfn $"%s{title} {dtString}, Kind = {inputDt.Kind}"
[<EntryPoint>]
let main _ =
// Get the date and time for the current moment, adjusted
// to the local time zone.
let saveNow = DateTime.Now
// Get the date and time for the current moment expressed
// as coordinated universal time (UTC).
let saveUtcNow = DateTime.UtcNow
// Display the value and Kind property of the current moment
// expressed as UTC and local time.
displayNow "UtcNow: .........." saveUtcNow
displayNow "Now: ............." saveNow
printfn ""
// Change the Kind property of the current moment to
// DateTimeKind.Utc and display the result.
let myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc)
display "Utc: ............." myDt
// Change the Kind property of the current moment to
// DateTimeKind.Local and display the result.
let myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local)
display "Local: ..........." myDt
// Change the Kind property of the current moment to
// DateTimeKind.Unspecified and display the result.
let myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified)
display "Unspecified: ....." myDt
0
// This code example produces the following results:
//
// UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
// Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
//
// Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
// ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
// ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
//
// Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
// ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
// ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
//
// Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
// ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
// ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
// This code example demonstrates the DateTime Kind, Now, and
// UtcNow properties, and the SpecifyKind(), ToLocalTime(),
// and ToUniversalTime() methods.
using System;
class Sample
{
public static void Main()
{
// Get the date and time for the current moment, adjusted
// to the local time zone.
DateTime saveNow = DateTime.Now;
// Get the date and time for the current moment expressed
// as coordinated universal time (UTC).
DateTime saveUtcNow = DateTime.UtcNow;
DateTime myDt;
// Display the value and Kind property of the current moment
// expressed as UTC and local time.
DisplayNow("UtcNow: ..........", saveUtcNow);
DisplayNow("Now: .............", saveNow);
Console.WriteLine();
// Change the Kind property of the current moment to
// DateTimeKind.Utc and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);
Display("Utc: .............", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Local and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);
Display("Local: ...........", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Unspecified and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
Display("Unspecified: .....", myDt);
}
// Display the value and Kind property of a DateTime structure, the
// DateTime structure converted to local time, and the DateTime
// structure converted to universal time.
public static string datePatt = @"M/d/yyyy hh:mm:ss tt";
public static void Display(string title, DateTime inputDt)
{
DateTime dispDt = inputDt;
string dtString;
// Display the original DateTime.
dtString = dispDt.ToString(datePatt);
Console.WriteLine("{0} {1}, Kind = {2}",
title, dtString, dispDt.Kind);
// Convert inputDt to local time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was universal time.
dispDt = inputDt.ToLocalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToLocalTime: {0}, Kind = {1}",
dtString, dispDt.Kind);
// Convert inputDt to universal time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was local time.
dispDt = inputDt.ToUniversalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}",
dtString, dispDt.Kind);
Console.WriteLine();
}
// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
public static void DisplayNow(string title, DateTime inputDt)
{
string dtString = inputDt.ToString(datePatt);
Console.WriteLine("{0} {1}, Kind = {2}",
title, dtString, inputDt.Kind);
}
}
/*
This code example produces the following results:
UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
*/
' This code example demonstrates the DateTime Kind, Now, and
' UtcNow properties, and the SpecifyKind(), ToLocalTime(),
' and ToUniversalTime() methods.
Class Sample
Public Shared Sub Main()
' Get the date and time for the current moment, adjusted
' to the local time zone.
Dim saveNow As DateTime = DateTime.Now
' Get the date and time for the current moment expressed
' as coordinated universal time (UTC).
Dim saveUtcNow As DateTime = DateTime.UtcNow
Dim myDt As DateTime
' Display the value and Kind property of the current moment
' expressed as UTC and local time.
DisplayNow("UtcNow: ..........", saveUtcNow)
DisplayNow("Now: .............", saveNow)
Console.WriteLine()
' Change the Kind property of the current moment to
' DateTimeKind.Utc and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc)
Display("Utc: .............", myDt)
' Change the Kind property of the current moment to
' DateTimeKind.Local and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local)
Display("Local: ...........", myDt)
' Change the Kind property of the current moment to
' DateTimeKind.Unspecified and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified)
Display("Unspecified: .....", myDt)
End Sub
' Display the value and Kind property of a DateTime structure, the
' DateTime structure converted to local time, and the DateTime
' structure converted to universal time.
Public Shared datePatt As String = "M/d/yyyy hh:mm:ss tt"
Public Shared Sub Display(ByVal title As String, ByVal inputDt As DateTime)
Dim dispDt As DateTime = inputDt
Dim dtString As String
' Display the original DateTime.
dtString = dispDt.ToString(datePatt)
Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, dispDt.Kind)
' Convert inputDt to local time and display the result.
' If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
' If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
' If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
' performed as if inputDt was universal time.
dispDt = inputDt.ToLocalTime()
dtString = dispDt.ToString(datePatt)
Console.WriteLine(" ToLocalTime: {0}, Kind = {1}", dtString, dispDt.Kind)
' Convert inputDt to universal time and display the result.
' If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
' If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
' If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
' performed as if inputDt was local time.
dispDt = inputDt.ToUniversalTime()
dtString = dispDt.ToString(datePatt)
Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}", dtString, dispDt.Kind)
Console.WriteLine()
End Sub
' Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
Public Shared Sub DisplayNow(ByVal title As String, ByVal inputDt As DateTime)
Dim dtString As String = inputDt.ToString(datePatt)
Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, inputDt.Kind)
End Sub
End Class
'
'This code example produces the following results:
'
'UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
'Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
'
'Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
' ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
' ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
'
'Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
' ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
' ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
'
'Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
' ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
' ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
'
Комментарии
DateTime Объект состоит из поля Kind, указывающего, основано ли значение времени на основе местного времени, координированного универсального времени (UTC) или ни в том же поле Ticks, которое содержит значение времени, измеряемое в 100-наносекундных тактов. Метод SpecifyKind создает объект DateTime , используя указанный kind
параметр и исходное значение времени.
Важно!
Возвращаемое DateTime значение не представляет тот же момент времени, что value
и параметр, и SpecifyKind не является методом преобразования часового пояса. Вместо этого он оставляет время, указанное параметром value
без изменений, и задает Kind для свойства значение kind
. Сведения о преобразованиях часовых поясов см. в разделе "Преобразование времени между часовыми поясами".
Этот SpecifyKind метод полезен в сценариях взаимодействия, где вы получаете DateTime объект с неустановленным полем Kind, но вы можете определить, независимо от того, что поле Ticks представляет местное время или UTC.