Web服务器是否有标准方法可以确定用户在网页中的时区?
也许来自HTTP标头或user-agent字符串的一部分?
我正在尝试将Twitter日期时间转换为本地iso-string(对于prettyDate),现在为期2天.我只是没有让当地时间正确..
即时通讯使用以下功能:
function getLocalISOTime(twDate) {
var d = new Date(twDate);
var utcd = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(),
d.getMinutes(), d.getSeconds(), d.getMilliseconds());
// obtain local UTC offset and convert to msec
localOffset = d.getTimezoneOffset() * 60000;
var newdate = new Date(utcd + localOffset);
return newdate.toISOString().replace(".000", "");
}
Run Code Online (Sandbox Code Playgroud)
在newdate一切都很好,但toISOString()再次将它重新回到原来的时间......任何人都可以帮我从Twitter日期中获取当地时间格式为:星期四,2012年5月31日08:33:41 +0000
从git我可以得到时间戳:
"2011-10-04 12:58:36 -0600"
Run Code Online (Sandbox Code Playgroud)
但有没有办法表明它:
"2011-10-04 06:58:36"
Run Code Online (Sandbox Code Playgroud)
所以我想要的是摆脱-0600时区偏移.我怎样才能做到这一点?谢谢.
使用java8我们知道使用ZoneId.default()可以获得系统默认值ZoneId,但如何获取默认值ZoneOffset?
我看到一个ZoneId有一些"规则",每个规则都有一个ZoneOffset,这意味着一个ZoneId可能有一个以上ZoneOffset吗?
我注意到对于我们东部时区("America/New_York"),时区偏移量为"-05:00" Date.getTimezoneOffset()返回正数300.我希望在几分钟内偏移量为负值来自Utc的West,以及Utc以东地区的积极,但显然它是"翻转".这个决定背后的原因是什么?
http://momentjs.com/遵循相同的规则并返回...
moment.parseZone("01/13/2014 3:38:00 PM +01:00").zone() // == -60
moment.parseZone("01/13/2014 3:38:00 PM -01:00").zone() // == 60
Run Code Online (Sandbox Code Playgroud)
同时,DateTimePicker http://trentrichardson.com/examples/timepicker/在设置其初始"timezone"参数时不会翻转数字.这是错的吗?
我正在寻找一个可靠的REST API,它可以跨平台提供世界时间和时区信息.
我需要当前时间作为字符串.无论用户在世界各地的位置如何,我都希望它能在一秒钟内返回结果.
在其他实现中,我想将它用于一致的倒数计时器,比用户的[可能不准确]计算机时间更准确.它可以是GMT或其他时区,只要指定时区和偏移量,如2012-11-05 16:16:50 EST.
我会自己构建这个API,但是当通过像Rails这样的整个大软件堆栈过滤某人只是为了返回一个简单时,我会担心潜在的延迟问题(以及不优雅)String.
远离美国东海岸的用户的延迟时间过长会抵消任务所需的准确性带来的好处.
任何建议和/或示例表示赞赏.
尝试在Django模型中设置密钥到期的时间戳并遇到此问题:
我目前的代码:
key_expires = models.DateTimeField(default=timezone.now() + timezone.timedelta(days=1))
Run Code Online (Sandbox Code Playgroud)
上面的代码可行,但是当使用"timezone.now()"时,它会从Apache重新启动时获取时间戳,因此这不起作用.我做了一些研究,找到了问题的那一部分的解决方案,所以通过将"timezone.now()"替换为"timezone.now",每次创建对象时我都会获得当前时间戳,这是完美的,问题部分解决了.
我在使用"timezone.timedelta(days = 1)"更改日期时遇到问题.
key_expires = models.DateTimeField(default=timezone.now + timezone.timedelta(days=1))
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
key_expires = models.DateTimeField(default=timezone.now + timezone.timedelta(days=1))
Run Code Online (Sandbox Code Playgroud)
TypeError:+:'function'和'datetime.timedelta'不支持的操作数类型
目标是提前24小时设置时间戳.
任何帮助是极大的赞赏.
我想将PHP服务器时间传递给我的JavaScript文件.
PHP代码:
date_default_timezone_set('Australia/Perth');
echo date("r");
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
$.get('time.php', function(data) {
today = new Date(data);
closing = new Date(data);
});
Run Code Online (Sandbox Code Playgroud)
PHP代码返回Sun,2012年3月18日12:01:23 +0800这是澳大利亚/珀斯的正确时间.但是这会返回无效的JavaScript日期对象.
当我尝试将其转换为时间戳时:
echo strtotime(date("r"));
Run Code Online (Sandbox Code Playgroud)
我收到了JavaScript日期Sun Mar 18 2012 04:03:14 GMT + 0000(WET)(这是今天js var的值)
如果我使用:
echo gmstrftime('%s');
Run Code Online (Sandbox Code Playgroud)
我得到:2012年3月17日星期六20:04:30 GMT + 0000(WET).
有人可以帮帮我吗?
我们尝试使用时区偏移量解析以下ISO 8601 DateTime字符串:
final String input = "2022-03-17T23:00:00.000+0000";
OffsetDateTime.parse(input);
LocalDateTime.parse(input, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
Run Code Online (Sandbox Code Playgroud)
由于时区偏移中的冒号,两种方法都失败(这OffsetDateTime也是有意义的DateTimeFormatter.ISO_OFFSET_DATE_TIME).
java.time.format.DateTimeParseException:无法在索引23处解析文本'2022-03-17T23:00:00.000 + 0000'
但根据维基百科,时区偏移有4种有效格式:
<time>Z
<time>±hh:mm
<time>±hhmm
<time>±hh
Run Code Online (Sandbox Code Playgroud)
其他框架/语言可以解析这个字符串而没有任何问题,例如Javascript Date()或Jacksons ISO8601Utils(他们在这里讨论这个问题)
现在我们可以DateTimeFormatter使用复杂的RegEx 编写自己的,但在我看来,java.time库应该能够默认解析这个有效的ISO 8601字符串,因为它是有效的.
现在我们使用Jacksons ISO8601DateFormat,但我们更愿意使用官方date.time库来使用.你有什么方法可以解决这个问题?
由于某些我无法弄清楚的原因,从以下代码:
>>> from pytz import timezone
>>> timezone('America/Chicago')
Run Code Online (Sandbox Code Playgroud)
我明白了:
<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD>
Run Code Online (Sandbox Code Playgroud)
我想,我应该得到:
<DstTzInfo 'America/Chicago' LMT-1 day, 18:00:00 STD>
Run Code Online (Sandbox Code Playgroud)
...因为我认为我的时区距离UTC只有6小时9分钟.
我已经查看了源代码,pytz但我承认我还没有完全弄清楚出了什么问题.
我已将其他值传递给timezone()函数,它返回的值似乎是正确的.但由于某些原因,与我的时区相关的信息不正确.
最后,我旁边的立方体中的同事确认该函数在他的机器上返回正确的时区信息.
有谁知道为什么我的时区('America/Chicago')会在9分钟后关闭?我运行版本2015.7的pytz安装使用pip.谢谢!