使用Javascript将日期时间转换为UTC

使用Javascript将日期时间转换为UTC,javascript,date,titanium,utc,dst,Javascript,Date,Titanium,Utc,Dst,好的,我正在编写一个Tianium应用程序,它消化JSON提要并将事件添加到用户日历中。我面临的问题是,JSON提要将有本地时间的数据时间(适当时包括夏令时),日历需要UTC 一个简化是事件总是在同一个位置(伦敦),因此唯一真正的问题是允许DST(BST)。因此,如果我从提要中获得一个日期字符串,如2014-04-27 19:00:00,那么将其输入UTC中的javascript日期对象的最佳方式是什么(我认为,在本例中,它看起来像2014-04-27T18:00:00Z,但这一切都取决于一年中

好的,我正在编写一个Tianium应用程序,它消化JSON提要并将事件添加到用户日历中。我面临的问题是,JSON提要将有本地时间的数据时间(适当时包括夏令时),日历需要UTC


一个简化是事件总是在同一个位置(伦敦),因此唯一真正的问题是允许DST(BST)。因此,如果我从提要中获得一个日期字符串,如2014-04-27 19:00:00,那么将其输入UTC中的javascript日期对象的最佳方式是什么(我认为,在本例中,它看起来像2014-04-27T18:00:00Z,但这一切都取决于一年中的时间)。

如果您不介意引入库,那么插件可以做到这一点

var input = '2014-04-27 19:00:00';
var eventDateInUtc = moment.tz(input, 'Europe/London').utc();
var output = eventDateInUtc.toDate().toISOString(); // '2014-04-27T18:00:00.000Z'

试试这个,希望它能帮助你

var newDate = new Date(); 
var newDateUTC = new Date(newDate.getUTCFullYear(), newDate.getUTCMonth(), newDate.getUTCDate(),  newDate.getUTCHours(), newDate.getUTCMinutes(), newDate.getUTCSeconds());

考虑到目标是一款钛合金移动应用程序,有一点开销。如果没有库,有没有办法做到这一点?只要您使用alloy,moment.js已经是Tianium的一部分了。要求使用
var力矩=要求(“合金/力矩”)我建议使用它,当涉及日期/时间时,像moment.js这样精心编制的库始终是首选。不要重新发明轮子;)很好的解决方案,但时刻时区也在钛中吗?当然,正如我在上面所评论的那样,无法避免回退转换的模糊性。没有
时刻时区
不是Tianium的一部分,因此此解决方案不起作用。提要是否提供了任何偏移信息?否则,您将无法区分BST和GMT<代码>2014-10-26 01:00:00
存在两次。另见。