将日期从本地时区转换为UTC,然后再转换为本地时区

Converting date from Local time zone to UTC and then to local

本文关键字:转换 时区 然后 日期 UTC      更新时间:2023-09-26

我正在AngularJs中进行应用程序。但问题是数据库由其他人控制。他们像ISD(印度标准(一样节省了数据库中的时间。当我调用Web服务来获取这些日期时,它以字符串的形式出现,如YYYY/MM/DD HH/MM/SS示例2015/02/23 23/59/01。我有一个日期列表,我必须用这样的ng重复来显示。

<ion-item ng-repeat="item in MeIdeaList | orderBy:'-CreatedDate'" style="background-color:rgb(25, 26, 0);" ng-click="ShowIdeaDetails(item.Id)">
           <div class="row">
               <div class="col col-80" style="color:white">
                   <p> {{item.Title}}</p>
                </div>
                <div class="col col-20" style="color:red">
                    <b>{{item.Status}}</b>
                </div>
            </div>
            <div class="row">
               <div class="col col-70" style="color:white">
                    {{item.CreatedDate}}
                </div>
                <div class="col col-30">
                    <i class="icon ion-chevron-right icon-accessory" style="float:right;color:white"></i>
                </div>
            </div>
        </ion-item>

现在我希望这个日期显示为本地时间,用户从那里访问数据。比如,如果我在美国,日期将来自数据库,只作为ISD。如何将此ISD转换为UTC,然后获取时区,添加或减去分钟,并在UI中向用户显示。

您还可以使用moment.js将日期从本地时间转换为utc,反之亦然。

moment('07-18-2013', 'MM-DD-YYYY').utc().format("YYYY-MM-DD HH:mm")
moment.utc('2014-02-19 05:24:32 AM').toDate();

function setDateLocal(input)
{
  var date = input.split(" "); //remember input needs to be as you described.
  date = date[0] + "T" + date[1].replace(/'//g, ":") + "+0000";
  var ist = 19800000; //time zone is IST, which is 5.30 from UTC in milliseconds
  var utcDate = new Date(Date.parse(date)-ist).toUTCString();
  return new Date(Date.parse(utcDate));
}
document.body.innerHTML += setDateLocal("2015/02/23 23/59/01");

此函数将从数据库中获取输入。将其转换为时间戳,并减去5.30小时(UTC和IST之间的差值(。最后一步是将其转换为本地。

var date = input.split(" "); 
                date = date[0] + "T" + date[1].replace(/'//g, ":") + "+00"+":"+"00";
                date=date.replace("/","-");
                date=date.replace("/","-");
                alert(date);
                var ist = 19800000; //time zone is IST, which is 5.30 from UTC in milliseconds
                var utcDate = new Date(Date.parse(date)-ist).toUTCString();
                 alert(utcDate);

保持日期之间的"-"和时间之间的":"很重要。