我在我的角度应用程序中使用以下代码来显示带有时区的日期时间。 它显示,2022 年 7 月 22 日 12:36:52 GMT-4 我想动态地将 GMT-4 替换为特定时区,比如 EDT、PST 或 CST
我正在使用以下代码,
@Component({
selector: '',
styleUrls: [''],
templateUrl: '',
providers: [DatePipe]
})
public class Test {
clock;
constructor() {
this.clock = this.datePipe.transform(new Date(), 'MMMM d, y h:mm:s z');
}
}
您可以像这样使用管道/自定义管道:
脚本.js:
var toUTCDate = function(date){
var _utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
return _utc;
};
var millisToUTCDate = function(millis){
return toUTCDate(new Date(millis));
};
var tzOffsetMillis = function(){
var date = new Date();
var offsetMinutes = date.getTimezoneOffset();
var offsetMillis = offsetMinutes * 60000;
}
$scope.toUTCDate = toUTCDate;
$scope.millisToUTCDate = millisToUTCDate;
$scope.tzOffsetMillis = tzOffsetMillis;
index.html:
<body>
<div ng-controller="ctrl">
<div>
utc: {{millisToUTCDate(1400167800 * 1000) | date:'dd-M-yyyy H:mm Z'}}
</div>
<div>
local: {{(1400167800 * 1000) | date:'dd-M-yyyy H:mm Z'}}
</div>
<div>
alt UTC: {{(1400167800 * 1000 + tzOffsetMillis()) | date:'dd-M-yyyy H:mm Z'}}
</div>
</div>
</body>
参考:https://plnkr.co/edit/eLwnLZReCy8HXtJyO84q?p=preview&preview
您可以通过UTC时间静态值加减来转换任何时区的日期
我在 HTML 页面中将 CST 时区的日期转换为 MM-DD-YYYY HH:mm:ss 格式,如下
* {{ 元素.CreateDtm |日期: 'MM-dd-yyyy HH:mm:ss' : 'UTC+530' }}
“UTC+530”在这里用作我存储在 CST 时区的数据库日期值,但由于 DatePipe 指令,UI 显示与数据库不同步(“DatePipe 的默认时区是您本地的时区,即 GMT-8 或 -800在西雅图”)。
因此,为了同步 UI 和 DB 日期值,我添加了“UTC+530”,这是 UI 和 DB 日期中的时差。
希望这将有助于通过 UTC 时间的静态值加法或减法将您的日期转换为所需的时区格式..
快乐编码...
谢谢,印度 Amol Kalgave