Angular 4 Date Pipe converting wrongly Angular 4 Date Pipe converting wrongly angular angular

Angular 4 Date Pipe converting wrongly


I resolved the issue by adding a custom pipe.

My custom pipe is based on the solution provided by Birwin. Thanks Birwin.

Here is my custom pipe named UtcDate

import { Pipe, PipeTransform } from '@angular/core';@Pipe({  name: 'utcDate'})export class UtcDatePipe implements PipeTransform {  transform(value: string): any {    if (!value) {      return '';    }    const dateValue = new Date(value);    const dateWithNoTimezone = new Date(      dateValue.getUTCFullYear(),      dateValue.getUTCMonth(),      dateValue.getUTCDate(),      dateValue.getUTCHours(),      dateValue.getUTCMinutes(),      dateValue.getUTCSeconds()    );    return dateWithNoTimezone;  }}

And I also used default date pipe to format

{{createdDate | utcDate | date:'short'}}


You can pass another param to date pipe as follows:

{{resultItem.createdDate | date : 'short' : 'UTC'}}

This param can be a timezone like '-0430' or just 'GMT'

See documentation: https://docs.angularjs.org/api/ng/filter/date


You may need to create a UTC date from your date with timezone... I assume you are in the pacific timezone as the time is 7 hours from UTC...

Try this code to get a new date object without Timezone (assuming your variable is named "date"):

var datewithouttimezone = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());