我有一个应用程序可以解析RSS提要中的信息,这些信息指定日期应以RFC-822格式指定-Date.parse可以很好地工作。总的来说,人们会采用一致的时间戳。但是,我遇到一种情况,有人将日期和时间指定为“例如,Sat,1 Dec 2018 00:00:00 MSK”(据我所知,MSK是莫斯科时区)。 / p>
有没有办法以编程方式将这样的字符串转换为我可以与Date.parse一起使用的方式(显然,对于MSK,我可以硬编码为+(或-)莫斯科的偏移量,但我想稍微灵活一点/比那更可靠)
出于各种原因,我宁愿避免不得不包含另一个库来执行此操作,因此,涉及标准javascript的答案将不胜感激
答案 0 :(得分:2)
所以从我的经验来看,我的意思是所有时区问题都可以通过诸如momentJs之类的外部库轻松解决。每当我遇到约会问题时,js都会解决它而没有任何麻烦。
请记住,在JS中玩日期并不是开箱即用的,会带来很多麻烦。如果您不想添加其他库,则需要编写自己的convertr函数,例如:
const date = 'Sat, 1 Dec 2018 00:00:00 MSK';
const dateConverted = (date)=> {
return date.replace('MSK', '+0300');
}
const convertedDate = dateConverted(date);
Date.parse(convertedDate)
但是在这种情况下,您将需要使用其他js时区无法识别的功能扩展dataConverter函数。例如,格林尼治标准时间+ 3也可以用其他缩写表示,例如:
没有其他方法可以实现自己的转换器函数或外部库。