DateTimeOffset.Equals Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, равны ли два объекта DateTimeOffset или равен ли объект DateTimeOffset заданному объекту.
Перегрузки
Equals(DateTimeOffset) |
Определяет, представляет ли текущий объект DateTimeOffset тот же момент времени, что и заданный объект DateTimeOffset. |
Equals(Object) |
Определяет, представляет ли объект DateTimeOffset тот же момент времени, что и заданный объект. |
Equals(DateTimeOffset, DateTimeOffset) |
Определяет, представляют ли два заданных объекта DateTimeOffset один и тот же момент времени. |
Equals(DateTimeOffset)
Определяет, представляет ли текущий объект DateTimeOffset тот же момент времени, что и заданный объект DateTimeOffset.
public:
virtual bool Equals(DateTimeOffset other);
public bool Equals (DateTimeOffset other);
override this.Equals : DateTimeOffset -> bool
Public Function Equals (other As DateTimeOffset) As Boolean
Параметры
- other
- DateTimeOffset
Объект, который требуется сравнить с текущим объектом DateTimeOffset.
Возвращаемое значение
Значение true
, если объекты DateTimeOffset имеют одинаковые значения UtcDateTime; в противном случае — значение false
.
Реализации
Примеры
В следующем примере показаны вызовы Equals(DateTimeOffset) метода для тестирования DateTimeOffset объектов на равенство с текущим DateTimeOffset объектом.
private static void CompareForEquality1()
{
DateTimeOffset firstTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0,
new TimeSpan(-7, 0, 0));
DateTimeOffset secondTime = firstTime;
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
secondTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0,
new TimeSpan(-6, 0, 0));
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
secondTime = new DateTimeOffset(2007, 9, 1, 8, 45, 0,
new TimeSpan(-5, 0, 0));
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
// The example displays the following output to the console:
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True
let firstTime = DateTimeOffset(2007, 9, 1, 6, 45, 0, TimeSpan(-7, 0, 0))
let secondTime = firstTime
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
let secondTime = DateTimeOffset(2007, 9, 1, 6, 45, 0, TimeSpan(-6, 0, 0))
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
let secondTime = DateTimeOffset(2007, 9, 1, 8, 45, 0, TimeSpan(-5, 0, 0))
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
// The example displays the following output to the console:
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True
Dim firstTime As New DateTimeOffset(#09/01/2007 6:45:00AM#, _
New TimeSpan(-7, 0, 0))
Dim secondTime As DateTimeOffset = firstTime
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
secondTime = New DateTimeOffset(#09/01/2007 6:45:00AM#, _
New TimeSpan(-6, 0, 0))
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
secondTime = New DateTimeOffset(#09/01/2007 8:45:00AM#, _
New TimeSpan(-5, 0, 0))
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
' The example displays the following output to the console:
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True
Комментарии
Перед выполнением сравнения этот метод преобразует значения обоих DateTimeOffset объектов в время в формате UTC. Этот метод эквивалентен следующему:
return this.UtcDateTime == other.UtcDateTime;
this.UtcDateTime = other.UtcDateTime
Return Me.UtcDateTime = other.UtcDateTime
Другими словами, метод определяет, Equals(DateTimeOffset) представляют ли два DateTimeOffset объекта одну точку во времени. Он напрямую не сравнивает ни даты, ни время, ни смещения. Чтобы определить, представляют ли два DateTimeOffset объекта одинаковое время и имеют одно и то же значение смещения, используйте EqualsExact метод.
ОбъектDateTimeOffset, который не null
считается более поздним (или больше), чем объект.null
Эта перегрузка Equals(DateTimeOffset) метода реализует IEquatable<T>.Equals этот метод. Он обеспечивает немного лучшую производительность, чем перегрузка DateTimeOffset.Equals(Object) , так как other
параметр не должен быть преобразован из объекта.
См. также раздел
Применяется к
Equals(Object)
Определяет, представляет ли объект DateTimeOffset тот же момент времени, что и заданный объект.
public:
override bool Equals(System::Object ^ obj);
public override bool Equals (object obj);
public override bool Equals (object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean
Параметры
- obj
- Object
Объект, который требуется сравнить с текущим объектом DateTimeOffset.
Возвращаемое значение
Значение true
, если параметр obj
является объектом DateTimeOffset и представляет тот же момент времени, что и текущий объект DateTimeOffset; в противном случае — значение false
.
Примеры
В следующем примере показано, равен ли текущий DateTimeOffset объект нескольким другим DateTimeOffset объектам, а также пустой ссылке и объекту DateTime .
private static void CompareForEquality2()
{
DateTimeOffset firstTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0,
new TimeSpan(-7, 0, 0));
object secondTime = firstTime;
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
secondTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0,
new TimeSpan(-6, 0, 0));
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
secondTime = new DateTimeOffset(2007, 9, 1, 8, 45, 0,
new TimeSpan(-5, 0, 0));
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
secondTime = null;
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
secondTime = new DateTime(2007, 9, 1, 6, 45, 00);
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
firstTime.Equals(secondTime));
// The example displays the following output to the console:
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True
// 9/1/2007 6:45:00 AM -07:00 = : False
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM: False
let compareForEquality2 () =
let firstTime = DateTimeOffset(2007, 9, 1, 6, 45, 0, TimeSpan(-7, 0, 0))
let secondTime: obj = firstTime
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
let secondTime = DateTimeOffset(2007, 9, 1, 6, 45, 0, TimeSpan(-6, 0, 0))
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
let secondTime = DateTimeOffset(2007, 9, 1, 8, 45, 0, TimeSpan(-5, 0, 0))
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
let secondTime = null
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
let secondTime = DateTime(2007, 9, 1, 6, 45, 00)
printfn $"{firstTime} = {secondTime}: {firstTime.Equals secondTime}"
// The example displays the following output to the console:
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True
// 9/1/2007 6:45:00 AM -07:00 = : False
// 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM: False
Dim firstTime As New DateTimeOffset(#09/01/2007 6:45:00AM#, _
New TimeSpan(-7, 0, 0))
Dim secondTime As Object = firstTime
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
secondTime = New DateTimeOffset(#09/01/2007 6:45:00AM#, _
New TimeSpan(-6, 0, 0))
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
secondTime = New DateTimeOffset(#09/01/2007 8:45:00AM#, _
New TimeSpan(-5, 0, 0))
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
secondTime = Nothing
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
secondTime = #9/1/2007 6:45AM#
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
firstTime.Equals(secondTime))
' The example displays the following output to the console:
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True
' 9/1/2007 6:45:00 AM -07:00 = : False
' 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM: False
Комментарии
Перед выполнением сравнения этот метод преобразует значения текущего DateTimeOffset объекта и obj
параметра в utc. Метод эквивалентен следующему:
return this.UtcDateTime == ((DateTimeOffset) obj).UtcDateTime;
this.UtcDateTime = (obj :?> DateTimeOffset).UtcDateTime
Return Me.UtcDateTime = DirectCast(obj, DatetimeOffset).UtcDateTime
Иными словами, метод определяет, DateTimeOffset.Equals(Object) представляет ли текущий DateTimeOffset объект и указанный объект единую точку во времени. Он напрямую не сравнивает ни даты, ни время, ни смещение. Чтобы определить, представляют ли два DateTimeOffset объекта одинаковое время и имеют одно и то же значение смещения EqualsExact , используйте метод.
Если obj
значение равно null
, или если тип obj
времени выполнения не DateTimeOffsetявляется, метод возвращает .false
См. также раздел
Применяется к
Equals(DateTimeOffset, DateTimeOffset)
Определяет, представляют ли два заданных объекта DateTimeOffset один и тот же момент времени.
public:
static bool Equals(DateTimeOffset first, DateTimeOffset second);
public static bool Equals (DateTimeOffset first, DateTimeOffset second);
static member Equals : DateTimeOffset * DateTimeOffset -> bool
Public Shared Function Equals (first As DateTimeOffset, second As DateTimeOffset) As Boolean
Параметры
- first
- DateTimeOffset
Первый из сравниваемых объектов.
- second
- DateTimeOffset
Второй из сравниваемых объектов.
Возвращаемое значение
Значение true
, если два объекта DateTimeOffset имеют одинаковые значения UtcDateTime; в противном случае — значение false
.
Примеры
В следующем примере показаны вызовы Equals(DateTimeOffset, DateTimeOffset) метода для проверки различных пар DateTimeOffset объектов на равенство.
DateTimeOffset firstTime = new DateTimeOffset(2007, 11, 15, 11, 35, 00,
DateTimeOffset.Now.Offset);
DateTimeOffset secondTime = firstTime;
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
DateTimeOffset.Equals(firstTime, secondTime));
// The value of firstTime remains unchanged
secondTime = new DateTimeOffset(firstTime.DateTime,
TimeSpan.FromHours(firstTime.Offset.Hours + 1));
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
DateTimeOffset.Equals(firstTime, secondTime));
// value of firstTime remains unchanged
secondTime = new DateTimeOffset(firstTime.DateTime + TimeSpan.FromHours(1),
TimeSpan.FromHours(firstTime.Offset.Hours + 1));
Console.WriteLine("{0} = {1}: {2}",
firstTime, secondTime,
DateTimeOffset.Equals(firstTime, secondTime));
// The example produces the following output:
// 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -07:00: True
// 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -06:00: False
// 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 12:35:00 PM -06:00: True
let firstTime = DateTimeOffset(2007, 11, 15, 11, 35, 00, DateTimeOffset.Now.Offset)
let secondTime = firstTime
printfn $"{firstTime} = {secondTime}: {DateTimeOffset.Equals(firstTime, secondTime)}"
// The value of firstTime remains unchanged
let secondTime = DateTimeOffset(firstTime.DateTime, TimeSpan.FromHours(firstTime.Offset.Hours + 1 |> float))
printfn $"{firstTime} = {secondTime}: {DateTimeOffset.Equals(firstTime, secondTime)}"
// value of firstTime remains unchanged
let secondTime = DateTimeOffset(firstTime.DateTime + TimeSpan.FromHours 1, TimeSpan.FromHours(firstTime.Offset.Hours + 1 |> float))
printfn $"{firstTime} = {secondTime}: {DateTimeOffset.Equals(firstTime, secondTime)}"
// The example produces the following output:
// 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -07:00: True
// 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -06:00: False
// 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 12:35:00 PM -06:00: True
Dim firstTime As New DateTimeOffset(#11/15/2007 11:35AM#, _
DateTimeOffset.Now.Offset)
Dim secondTime As DateTimeOffset = firstTime
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
DateTimeOffset.Equals(firstTime, secondTime))
' The value of firstTime remains unchanged
secondTime = New DateTimeOffset(firstTime.DateTime, _
TimeSpan.FromHours(firstTime.Offset.Hours + 1))
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
DateTimeOffset.Equals(firstTime, secondTime))
' value of firstTime remains unchanged
secondTime = New DateTimeOffset(firstTime.DateTime + TimeSpan.FromHours(1), _
TimeSpan.FromHours(firstTime.Offset.Hours + 1))
Console.WriteLine("{0} = {1}: {2}", _
firstTime, secondTime, _
DateTimeOffset.Equals(firstTime, secondTime))
' The example produces the following output:
' 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -07:00: True
' 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -06:00: False
' 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 12:35:00 PM -06:00: True
Комментарии
Перед выполнением сравнения этот метод преобразует оба DateTimeOffset объекта в utc. Метод эквивалентен следующему:
return first.UtcDateTime == second.UtcDateTime;
first.UtcDateTime = second.UtcDateTime
Return first.UtcDateTime = second.UtcDateTime
Другими словами, метод определяет, Equals(DateTimeOffset, DateTimeOffset) представляют ли два DateTimeOffset объекта одну точку во времени. Он напрямую не сравнивает ни даты, ни время, ни смещение. Чтобы определить, представляют ли два DateTimeOffset объекта одинаковое время и имеют одно и то же значение смещения EqualsExact , используйте метод.