我将特定时区的日期时间作为字符串,我想将其转换为本地时间.但是,我不知道如何在Date对象中设置时区.
例如,Feb 28 2013 7:00 PM ET,我可以
var mydate = new Date();
mydate.setFullYear(2013);
mydate.setMonth(02);
mydate.setDate(28);
mydate.setHours(7);
mydate.setMinutes(00);
Run Code Online (Sandbox Code Playgroud)
据我所知,我可以设置UTC时间或本地时间.但是,我如何在另一个时区设置时间?
我试图使用添加/减去UTC的偏移量,但我不知道如何应对夏令时.我不确定我是否正朝着正确的方向前进.
如何在javascript中将时间从不同的时区转换为当地时间?
存储时间戳值不同PostgreSQL中,当数据类型是WITH TIME ZONE对WITHOUT TIME ZONE?可以用简单的测试用例说明差异吗?
我正在使用Moment.js来解析和格式化我的网络应用程序中的日期.作为JSON对象的一部分,我的后端服务器将日期作为UTC纪元(Unix偏移)的毫秒数发送.
在特定时区解析日期很简单 - 只需在解析之前将RFC 822时区标识符附加到字符串的末尾:
// response varies according to your timezone
moment('3/11/2012 13:00').utc().format("MM/DD HH:mm")
// problem solved, always "03/11 17:00"
moment('3/11/2012 13:00 -0400').utc().format("MM/DD HH:mm")
Run Code Online (Sandbox Code Playgroud)
但是如何在特定时区格式化日期?无论浏览器的当前时间如何,我都希望得到一致的结果,但我不希望以UTC显示日期.
我希望服务器始终在HTML中提供UTC日期,并在客户端站点上使用JavaScript将其转换为用户的本地时区.
如果我可以用户的区域设置日期格式输出,则可以获得奖励.
我正在处理Rails和Postgres中的日期和时间并遇到这个问题:
数据库采用UTC格式.
用户在Rails应用程序中设置选择的时区,但仅在获取用户本地时间来比较时间时使用.
用户存储时间,例如2012年3月17日晚上7点.我不希望存储时区转换或时区.我只想保存日期和时间.这样,如果用户改变他们的时区,它仍将显示2012年3月17日,晚上7点.
我只使用用户指定的时区来获取用户本地时区当前时间之前或之后的记录.
我目前正在使用"没有时区的时间戳",但是当我检索记录时,rails(?)会将它们转换为应用程序中的时区,这是我不想要的.
Appointment.first.time
=> Fri, 02 Mar 2012 19:00:00 UTC +00:00
Run Code Online (Sandbox Code Playgroud)
因为数据库中的记录似乎是以UTC形式出现的,我的黑客是用当前时间,用'Date.strptime(str,"%m /%d /%Y")删除时区,然后做我的查询:
.where("time >= ?", date_start)
Run Code Online (Sandbox Code Playgroud)
似乎必须有一种更简单的方法来忽略周围的时区.有任何想法吗?
我有一个TIMESTAMP WITHOUT TIME ZONE类型的列,并希望默认为UTC当前时间.以UTC格式获取当前时间很简单:
postgres=# select now() at time zone 'utc';
timezone
----------------------------
2013-05-17 12:52:51.337466
(1 row)
Run Code Online (Sandbox Code Playgroud)
与使用列的当前时间戳一样:
postgres=# create temporary table test(id int, ts timestamp without time zone default current_timestamp);
CREATE TABLE
postgres=# insert into test values (1) returning ts;
ts
----------------------------
2013-05-17 14:54:33.072725
(1 row)
Run Code Online (Sandbox Code Playgroud)
但那使用当地时间.尝试将其强制为UTC会导致语法错误:
postgres=# create temporary table test(id int, ts timestamp without time zone default now() at time zone 'utc');
ERROR: syntax error at or near "at"
LINE 1: ...int, ts timestamp without …Run Code Online (Sandbox Code Playgroud) 我有一个使用datetime.utcnow()创建并保存在数据库中的python datetime实例.
为了显示,我想使用默认的本地时区将从数据库检索的日期时间实例转换为本地日期时间(即,就像使用datetime.now()创建日期时间一样).
如何仅使用python标准库将UTC日期时间转换为本地日期时间(例如,没有pytz依赖项)?
似乎一个解决方案是使用datetime.astimezone(tz),但是如何获得默认的本地时区?
在编写Web应用程序时,将(服务器端)所有日期时间存储在数据库中作为UTC时间戳是有意义的.
当我发现你无法在JavaScript中进行时区操作时,我感到非常惊讶.
我稍微扩展了Date对象.这个功能有意义吗?基本上,每次我向服务器发送任何内容时,它都将是使用此功能格式化的时间戳...
你能看到这里有什么重大问题吗?或者从不同角度解决问题?
Date.prototype.getUTCTime = function(){
return new Date(
this.getUTCFullYear(),
this.getUTCMonth(),
this.getUTCDate(),
this.getUTCHours(),
this.getUTCMinutes(),
this.getUTCSeconds()
).getTime();
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎有点令人费解.而且我对表现也不太确定.
我有一个使用IPDDump创建的Blackberry IPD备份的CSV转储文件.这里的日期/时间字符串看起来像这样(EST澳大利亚时区在哪里):
Tue Jun 22 07:46:22 EST 2010
Run Code Online (Sandbox Code Playgroud)
我需要能够在Python中解析这个日期.起初,我尝试使用strptime()datettime中的函数.
>>> datetime.datetime.strptime('Tue Jun 22 12:10:20 2010 EST', '%a %b %d %H:%M:%S %Y %Z')
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,返回的datetime对象似乎没有任何tzinfo关联它.
我在这个页面上读到的显然是datetime.strptime默默地丢弃了tzinfo,但是,我检查了文档,我找不到任何有关此处记录的效果.
我已经能够使用第三方Python库dateutil来解析日期,但是我仍然很好奇我是如何使用内置strptime()错误的?有什么方法可以strptime()很好地与时区玩吗?
我有一个X.509证书,它有以下2个时间戳:
['validFrom'] = String(13) "120314165227Z"
['validTo'] = String(13) "130314165227Z"
Run Code Online (Sandbox Code Playgroud)
后缀字符'Z'是什么意思.它是否指定了时区?
timezone ×10
datetime ×4
javascript ×4
postgresql ×3
python ×2
timestamp ×2
momentjs ×1
types ×1
utc ×1