2017-01-10 202 views
0

我想存储为DateTimeSQL Server我UTC日期转换到客户端的本地日期时间转换UTC GMT + 0200为本地时间

我有一个日期存储在我的数据库中的UTC,它的值是2017-01-10 10:52:07.820

使用下面的代码,它似乎出现Tue Jan 10 2017 10:52:07 GMT+0200 (GTB Standard Time)

var testDateUtc = moment(item.DatePosted); //"/Date(1484038327820)/" 
var localDate = moment(testDateUtc).local();   
var d = localDate.toDate();    
var DatePosted = d; //result is Tue Jan 10 2017 10:52:07 GMT+0200 (GTB Standard Time) 

我想偏移GMT + 0200被添加到日期,以便最终日期的样子:周二2017年1月10日: 52:07或理想格式为:10/1/2017 12:52

任何想法?

+0

您使用的编程语言来访问SQLServer的?我赞扬你想用内置函数做这件事,不幸的是,时间和日期处理几乎从不简单 –

+0

@ std''OrgnlDave是的,VB.NET通过类属性 公共属性DatePosted()As System.Nullable()的日期时间) 获取 返回m_DatePosted.Value.ToUniversalTime 最终获取 套装(价值作为System.Nullable(的DATETIME)) m_DatePosted =值 结束设定 高端物业 私人m_DatePosted作为System.Nullable(日期时间的) – alwaysVBNET

+0

@ std''OrgnlDave尽管服务器位于不同的时区,而客户端位于其他时区。 – alwaysVBNET

回答

0

由于您输入的是UTC,所以在构建矩对象时必须使用moment.utc模式。

您可以使用format()来选择如何显示矩对象。

这里工作的例子:

var testDateUtc = moment.utc(1484038327820); 
 
var localDate = moment(testDateUtc).local(); 
 
console.log(localDate.format('D/M/YYYY HH:mm'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>