转换 美国太平洋时间 和 北京时间

问题描述

客户经常要转换美国太平洋时间和北京时间,搞得我太晕了。。。想写个程序,网上搜了一下,还有夏令时什么的,参见这里:http://wenwen.sogou.com/z/q610399718.htm?sw=%E5%A4%AA%E5%B9%B3%E6%B4%8B%E6%97%B6%E9%97%B4&ch=new.w.search.1&ch=2我找了一段代码(解析美国东部时间与北京时间相互转换的实现代码)如下:http://www.jb51.net/article/37057.htm但这个是解决美国东部时间的,我要的是太平洋时间,就是俗称加州时间。。求教各位大侠,参照上面的太平洋规则,再借鉴上面这个东部时间的代码我看写的挺全的。帮我写一段时间,最好是JS的,我想用在网页程序上。100分悄悄送上,不够再加。谢谢。

解决方案

解决方案二:
没这么复杂,使用.net提供的TimeZoneInfo类就可以,这个使用的是windows提供的时区信息。比如通用的方式:varchinaZone=TimeZoneInfo.FindSystemTimeZoneById("ChinaStandardTime");varpstZone=TimeZoneInfo.FindSystemTimeZoneById("PacificStandardTime");vartime=newDateTime(DateTime.Now.Ticks,DateTimeKind.Unspecified);varpstTime=TimeZoneInfo.ConvertTime(time,chinaZone,pstZone);

这是把当前时间作为北京时间转换到太平洋时间。当然如果可以确定服务器的时区不变,那么一边用TimeZoneInfo.Local也行。
解决方案三:
所有时间都是一样的,根本用不着什么转换,只不过表现形式不同而已。你应该搞懂DateTime对象的UTC时间表现。对于时间对象x,它内部都可以UTC时间为标准,然后你想让它用什么时区去表现,它就会变成那个时区的时间。你因为不知道UTC时间的标准,所以会有“捧着.net这个金饭碗去要饭”的错觉。不管你用你的本地时间如何录入,你试试在程序中取这个变量的utc时间试试看?!它会自动转换的。vardate0=newDateTime(2015,2,1,18,20,23,DateTimeKind.Local);vardate1=newDateTime(2015,2,1,18,20,23,DateTimeKind.Utc);vartext0=date0.ToLocalTime().ToString();vartext1=date1.ToLocalTime().ToString();

假设你使用早先的SQLServer之类的数据存储服务,假设它的“时间类型”并没有区分UTC还是各地Local标准时间,那么你可以把从不同终端发来的时间,一律以此时间的“UTC时间”来保存。将来要在不同的终端(例如不同语言的网页)上显示时,自动将从SQLServer读取出来的时间作为UTC时间,然后以当地时间(ToLocalTime)来显示。
解决方案四:
比如说你的某一个客户端使用“北京时间”,另一个客户端使用“美东时间”,它们向同一个服务器程序传送json数据,其中有着时间属性,会出什么问题吗?不应该会出什么问题。因为你的json序列化类库应该是合格的,应该将时间格式准确表示(不管以什么格式表示。通常会使用ISO标准格式)。然后服务器端的.net程序,在反序列化为.net对象时,假设服务器windows系统使用曼谷时间,那么你就能看到local类型为曼谷时间的这个时间。但是这整个自动转换过程中,utc时间标准都是不变的。所以假设你使用比较“老的”数据库系统,在表示时间上没有.net系统这种“双重标准”的本领,那么你就注意一下你的程序对数据库读写时都用utc时间,这就不会出现问题了。
解决方案五:
我再给你举个从字符串传来时间的例子vardate0=DateTime.Parse("2014-1-05T08:15:30-08:00");vardate1=DateTime.Parse("2014-1-05T10:15:30-08:00");vartext0=date0.ToLocalTime().ToString();vartext1=date1.ToLocalTime().ToString();

你可以看到,除了所在的时区,其它都一样。然后用本地时间格式来看,直接就看出差2个小时来了!
解决方案六:
引用4楼sp1234_maJia的回复:

我再给你举个从字符串传来时间的例子vardate0=DateTime.Parse("2014-1-05T08:15:30-08:00");vardate1=DateTime.Parse("2014-1-05T10:15:30-08:00");vartext0=date0.ToLocalTime().ToString();vartext1=date1.ToLocalTime().ToString();

你可以看到,除了所在的时区,其它都一样。然后用本地时间格式来看,直接就看出差2个小时来了!

我X,假P哥?
解决方案七:
东部时间和太平洋时间差3小时。夏令时是一样的。且应该用楼上这些回答来处理,而不要自己写程序。因为夏令时之类的是根据相关国家行政命令来的,比如前一段时间俄国似乎有时间相关的新规定导致windows出过一个补丁对应。使用系统方法来处理时间可以根据具体情况自动处理,而不需要你动不动要去改代码
解决方案八:
什么东部时间,太平洋时间,不过是时区不一样而已,处理起来有任何区别??

时间: 2024-10-17 18:42:30

转换 美国太平洋时间 和 北京时间的相关文章

php实现的太平洋时间和北京时间互转的自定义函数分享_php实例

没有什么好说的了,直接上代码吧: /** * 太平洋时间转北京时间 */ public function pacificToPRC($time=''){ date_default_timezone_set('Pacific/Apia'); if(empty($time)){ $time = time(); } date_default_timezone_set('Asia/Shanghai'); $date = date('Y-m-d H:i:s',$time); $time = strtoti

PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法_php技巧

问题: php函数date("Y-n-d   H-i-s");   输出的时间与当地时间相差8个小时. 解决思路 北京时间是东8区,可能是时区问题.但是此前都没问题啊,经过google发现原来从php5.1.0开始,php.ini里加入了 date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时.  在调用date()函数之前先设定时区. 方法一:date_default_timezo

js 格林时间转换成北京时间

太平洋时区--指的是美国洛杉矶.旧金山.圣地亚哥.拉斯维加斯.西雅图等所在的时区.北京时间为 太平洋时间加16个小时,而格林尼治时间是太平洋时间加8个小时 如果太平洋时间是4点,则格林尼治时间是12点,北京时间是20点   PS:标题是格林时间,其实任何非北京时间都可以转换成北京时间 Javascript:  代码如下 复制代码 "Fri, 11 Apr 2014 03:01:08 GMT" // 格林时间 "Fri Apr 11 2014 11:10:08 GMT+0800

其他时间转化为北京时间

巴黎时间和北京时间怎么转换.   [导语]:巴黎在东1时区,北京在东8时区,北京时间比巴黎时间早7小时,北京时间减7小时就是巴黎时间. 在线时区换算http://time.123cha.com/?q=%E5%B7%B4%E9%BB%8E   先普及一下时区的概念. 1:全球共分为24个时区(中时区,东1~12区,西1~12区,其中东12区和西12区合并为一个时区). 2:每相隔一个时区,区时相差一个小时. 3:计算时间,使用东加西减法. 4:穿越日界线要进行日期变更,即自西向东经过日界线(日界线

mysql中TIMESTAMP设置默认时间为当前时间

很多时候,为了简单,我们在设计数据表的时候,都需要设置时间字段为当前时间.可是MySQL 中,默认值无法使用函数,也就是你无法设置某一列,默认值是 NOW () 这样的处理.那怎么办呢? TIMESTAMP 数据类型.插入的时候,忽略该列即可.  代码如下 复制代码 dt TIMESTAMP /*等价于*/ dt TIMESTAMP  default CURRENT_TIMESTAMP  ON UPDATE CURRENT_TIMESTAMP   create table testB (   i

Delphi获取格林威治时间并转换到北京时间

uses Winapi.msxml, System.DateUtils; //实时获取网络时间的函数, 得到的是格林威治时间; 默认从 sohu 服务器获取, 因为它最快, 平均只需 15 毫秒function GetNetTime(aUrl: WideString = 'http://www.sohu.com'): string; begin with CoXMLHTTP.Create do beginopen('Post', aUrl, False, EmptyParam, EmptyPar

美国进入冬令时 美股开盘为北京时间22:30

和讯科技消息 http://www.aliyun.com/zixun/aggregation/17197.html">北京时间11月6日,美国已于11月4日进入冬令时,美国股票市场常规交易所对应的北京时间为22:30至次日凌晨5:00,不再是此前的21:30至次日凌晨4:00.

美国进入冬令时 美股开盘为北京时间晚10点半

摘要: 北京时间11月4日晚间消息,美国于11月3日进入冬令时,实行夏令时的地方将恢复常规时间,美国股票市场常规交易所对应的北京时间将变为周一至周五22:30到次日凌晨5:00,不再是此前的 北京时间11月4日晚间消息,美国于11月3日进入冬令时,实行夏令时的地方将恢复常规时间,美国股票市场常规交易所对应的北京时间将变为周一至周五22:30到次日凌晨5:00,不再是此前的21:30至次日凌晨4:00.11月4日为进入冬令时后美股首个交易日. 3日当地时间凌晨2点(北京时间3日下午2点)美国各地将

[短讯]美国地质勘探局网站消息,2012年10月24日北京时间8点45分哥斯达黎加发生6.6级地震,震源深度19公里

[短讯]美国地质勘探局网站消息,2012年10月24日http://www.aliyun.com/zixun/aggregation/17197.html">北京时间8点45分哥斯达黎加发生6.6级地震,震源深度19公里