2017-03-15 43 views
2

如何防止Kendo将DateTime对象转换为用户本地时区?停止Kendo将时间转换为本地时区

我使用Kendo UI以及我的MVC项目。

@Model.EndDate.ToString("MMMM dd, yyyy hh:mm tt) 

然而,我的项目的一些部分我使用的剑道模板需要我用剑道的.toString()方法正确格式:在我看来,我可以简单地做下使用C#打印出日期/时间日期。这个问题是它将它转换为我不想要的浏览器的本地时区。 这里是我如何使用剑道显示日期/时间:

<script id="DetailTemplate" type="text/x-kendo-template"> 
    #= kendo.toString(EndDate, "g") # 
</script> 

从我读过的东西,它实际上是JavaScript的本身就是在默认情况下改变timzone。有没有一种方法可以解析日期,然后才能将它们锁定到原始时区中?

+1

日期没有一个时区,它们是UTC。但是,内置的* toString *在构建显示字符串时使用主机时区。你如何保存原始时区? – RobG

+0

@RobG感谢那些信息,我没有意识到他们没有存储时区。我决定用moment.js来指定我想要日期的时区。 – Quiver

+1

支持特定的时区相当容易,但夏令时会更有趣一些。如果你对图书馆感到满意,也可以。 – RobG

回答

0

为了解决这个问题,我决定只使用moment.jsmoment-timezone.js

我想我所有的时间是ET,所以我的剑道模板现在看起来是这样的:

<script id="DetailTemplate" type="text/x-kendo-template"> 
    #: moment(EndDate).tz("America/New_York").format("M/DD/YYYY hh:mm A") # 
</script> 
相关问题