Как преобразовать дату в этот формат 'гггг-ММ-дд' в угловых 2

Небольшие варианты форм, уже отправленные несколькими другими ...

using System;
...
public override bool Equals ( object obj ) {
   return Equals(obj as SomeClass);
}

public bool Equals ( SomeClass someInstance ) {
    return Object.ReferenceEquals( this, someInstance ) 
        || ( !Object.ReferenceEquals( someInstance, null ) 
            && this.Value == someInstance.Value );
}

public static bool operator ==( SomeClass lhs, SomeClass rhs ) {
    if( Object.ReferenceEquals( lhs, null ) ) {
        return Object.ReferenceEquals( rhs, null );
    }
    return lhs.Equals( rhs );
    //OR
    return Object.ReferenceEquals( lhs, rhs )
            || ( !Object.ReferenceEquals( lhs, null ) 
                && !Object.ReferenceEquals( rhs, null )
                && lhs.Value == rhs.Value );
}

public static bool operator !=( SomeClass lhs, SomeClass rhs ) {
    return !( lhs == rhs );
    // OR
    return ( Object.ReferenceEquals( lhs, null ) || !lhs.Equals( rhs ) )
            && !Object.ReferenceEquals( lhs, rhs );
}

Попытка найти способ реализовать operator == с помощью Equals, чтобы избежать дублирования логики сравнения значений ... без каких-либо избыточных тесты (вызовы ReferenceEquals с теми же параметрами) или ненужные тесты (это не может быть нулевым в методе instance.Equals) и без каких-либо явных условий («ifs»).

Ближе всего я могу думать об этом, но он чувствует , как это должно быть возможно без дополнительного метода:)

public bool Equals ( SomeClass someInstance ) {
    return Object.ReferenceEquals( this, someInstance ) 
        || (!Object.ReferenceEquals( someInstance, null ) && EqualsNonNullInstance( someInstance );
}

public static bool operator ==( SomeClass lhs, SomeClass rhs ) {
    return Object.ReferenceEquals( lhs, rhs ) 
    || ( !Object.ReferenceEquals( lhs, null ) && !Object.ReferenceEquals( rhs, null ) && lhs.EqualsNonNullInstance( rhs ) );
}

//super fragile method which returns logical non-sense
protected virtual bool EqualsNonNullInstance ( SomeClass someInstance ) {
    //In practice this would be a more complex method...
    return this.Value == someInstance.Value;
}

Вспоминая, насколько утомительно и подвержено ошибкам все это (я почти уверен, что в приведенном выше коде есть ошибка ... которая все еще сосет, потому что кто хочет подклассифицировать Type только , чтобы сделать проверки равенства немного проще?), в будущем я думаю, что я просто создам некоторые статические методы, которые обрабатывают все нулевые проверки и принимают делегат или требуют и интерфейс для выполнения сравнения значений (единственная часть, которая действительно изменяет Type to Type) .

Было бы здорово, если бы мы могли просто добавлять атрибуты к полям / свойствам / методам, которые нужно сравнивать, и пусть компилятор / среда выполнения обрабатывают всю скуку.

Также убедитесь, что значения GetHashCode () равны для всех экземпляров, в которых может быть возвращено true или сумасшедшее дерьмо .Equals (object).

23
задан noufalcep 10 November 2016 в 04:36
поделиться

1 ответ

Та же проблема я столкнулся в своем проекте. Благодаря @Umar Rashed, но я собираюсь объяснить это подробно.

Первый, Обеспечьте Канал Даты от app.module:

providers: [DatePipe]

Импорт в Ваш компонент и app.module:

import { DatePipe } from '@angular/common';
1112-секундный, объявите это при конструкторе:

constructor(
    public datepipe: DatePipe
  ) {

Даты прибывают из сервера и проанализированный к консоли как это:

2000-09-19T00:00:00

я преобразовываю дату в то, как мне нужно с этим кодом; в TypeScript:

this.datepipe.transform(this.birthDate, 'dd/MM/yyyy')

Шоу от [1 120] шаблон HTML:

{{ user.birthDate }}

и это замечено как это:

19/09/2000

также замеченный на веб-сайте как это: даты, показавшие, поскольку это фильтровано (щелчок для наблюдения снимка экрана)

0
ответ дан LuDeveloper 11 October 2019 в 11:01
поделиться
  • 1
    " scope" больше не существует на этом уровне - только долгий массив байтов. Весь Ваш код переводится в блок, и это размечается в памяти. Когда вещи достаточно близки вместе, компилятор генерирует близкие указатели, когда еще дальше компилятор должен генерировать далекие указатели. – Justin Smith 23 February 2010 в 03:22
Другие вопросы по тегам:

Похожие вопросы: