360免费wifi下载安装,网站建设及优化的策划书,WordPress二次元插件,wordpress 商城主题我们在网上浏览#xff0c;在虚拟时空漫游世界时#xff0c;经常会遇到时区的困扰#xff0c;这篇文章是什么时间发布的#xff1f;邮件是什么时间发出的#xff1f;GMT和PST各代表什么意思#xff0c;如何换算#xff1f;等等. 我通过互联网搜集了一些小知识#xff0…我们在网上浏览在虚拟时空漫游世界时经常会遇到时区的困扰这篇文章是什么时间发布的邮件是什么时间发出的GMT和PST各代表什么意思如何换算等等. 我通过互联网搜集了一些小知识供大家参考。
1、概念和换算 PST - 美国太平洋标准时间 GMT 格林威治标准时间 几个换算公式因为是24进制看起来有点怪: (GMT 8)16 PST PST7 GMT PST16 GMT 8(中国)
我们是东八区加州是西八区中间差16个小时。
2、关于日期中的时区标志。
由于都在互联网上大家在各个时区的事件表示有所不同因此日期要转换到当前时区的日期和时间在互联网上大家一般都用CTS(世界标准时间有称作GMT(格林尼治时间。 譬如日期时间为Sat, 30 Mar 2002 13:27:08 -0800我们当前所在的时区为正8区北京时间则用我们所在时区表示就是 Sat, 30 Mar 2002 291316:27:08 即Sun, 31 Mar 2002 6:27:08 8000。 ---?? 目前存在的时区有 GMT 格林威治标准时间 GMT UTC 全球标准时间 GMT ECT 欧洲中部时间 GMT1:00 EET 东欧时间 GMT2:00 ART 阿拉伯埃及标准时间 GMT2:00 EAT 东非时间 GMT3:00 MET 中东时间 GMT3:30 NET 近东时间 GMT4:00 PLT 巴基斯坦拉合尔时间 GMT5:00 IST 印度标准时间 GMT5:30 BST 孟加拉国标准时间 GMT6:00 VST 越南标准时间 GMT7:00 CTT 中国台湾时间 GMT8:00 JST 日本标准时间 GMT9:00 ACT 澳大利亚中部时间 GMT9:30 AET 澳大利亚东部时间 GMT10:00 SST 所罗门标准时间 GMT11:00 NST 新西兰标准时间 GMT12:00 MIT 中途岛时间 GMT-11:00 HST 夏威夷标准时间 GMT-10:00 AST 阿拉斯加标准时间 GMT-9:00 PST 太平洋标准时间 GMT-8:00 PNT 菲尼克斯标准时间 GMT-7:00 MST 西部山脉标准时间 GMT-7:00 CST 中部标准时间 GMT-6:00 EST 东部标准时间 GMT-5:00 IET 印第安那东部标准时间 GMT-5:00 PRT 波多黎各和美属维尔京群岛时间 GMT-4:00 CNT 加拿大纽芬兰时间 GMT-3:30 AGT 阿根廷标准时间 GMT-3:00 BET 巴西东部时间 GMT-3:00 CAT 中非时间 GMT-1:00
3、教你怎样在Oracle 9i中正确转换时区
在Oracle9i之前虽然有一个NEW_TIME函数可以改变DATE的时间戳部分但是还没有专门用来存储时区信息的数据类型。在Oracle9i中我们可以使用DBTIMEZONE伪字段查询数据库的时区使用SESSIONTIMEZONE伪字段查询会话的时区。 但是对于大多数数据库这些值都是-07:00之类的偏移值因此对于NEW_TIME函数是没有用的。Oracle9i有关NEW_TIME的文档建议使用FROM_TZ来替代但是这可能会产生误导。FROM_TZ只将一个时区应用到一个时间戳上它并不能把一个时区转换成另外一个时区。 其实有一个比较好的方法从文档中得到这个方法可能有点难。首先为了完成这个工作在正确的时区内需要一个TIMESTAMP WITH ZONE数据类型。然后如果你将关键字AT TIME ZONE应用到那个值它就会自动地调整为新的时区和日期。 select (timestamp 2003-04-06 01:59:59 at time zone PDT) at time zone GMT from dual; 06-APR-03 08.59.59.00000000 AM GMT
这个语句将为太平洋白天时间即其切换到PST之前的时刻构造一个TIMESTAMP WITH TIME ZONE然后再将其转换到GMT。AT TIME ZONE关键字也接受默认的偏移值语法 select (timestamp 2003-04-06 02:00:00 at time zone -07:00) at time zone 00:00 from dual; 06-APR-03 09.00.00.000000000 AM 00:00 你还可以使用伪字段来自动调整当前会话的时区 select current_timestamp at time zone dbtimezone from dual; 上面的表达式返回一个当前会话的本地时间数据类型为时区重新调整数据库的时区调整后的时区将与SYSTIMESTAMP的结果相等。有了以上的这些信息就可以构造一个比较好的NEW_TIME函数 create or replace function my_new_time (p_dwtz timestamp with time zone, p_tz varchar2 ) return date is begin return cast(p_dwtz at time zone p_tz as date); end my_new_time; / show errors; select my_new_time(sysdate,08:00) from dual; 即使第一个参数被标记为一个timestamp with time zone你依然可以传入一个TIMESTAMP和DATE这样由于Oracle的自动转型操作得到的时间将是会话在本地时区的当前时间。这个函数接受包括偏移值在内的任何可以被TIMESTAMP识别的时区然后将接受的时区调整为正确的值。
4、Oracle/Sqlserver中的日期函数节选(35).系统时间 S:select getdate() value O:select sysdate value from dual (36).前后几日 直接与整数相加减 (37).求日期 S:select convert(char(10),getdate(),20) value O:select trunc(sysdate) value from dual select to_char(sysdate,yyyy-mm-dd) value from dual (38).求时间 S:select convert(char(8),getdate(),108) value O:select to_char(sysdate,hh24:mm:ss) value from dual (39).取日期时间的其他部分 S:DATEPART 和 DATENAME 函数 第一个参数决定 O:to_char函数 第二个参数决定 参数---------------------------------下表需要补充 year yy, yyyy quarter qq, q (季度) month mm, m (m O无效) dayofyear dy, y (O表星期) day dd, d (d O无效) week wk, ww (wk O无效) weekday dw (O不清楚) Hour hh,hh12,hh24 (hh12,hh24 S无效) minute mi, n (n O无效) second ss, s (s O无效) millisecond ms (O无效) ---------------------------------------------- (40).当月最后一天 S:不知道 O:select LAST_DAY(sysdate) value from dual (41).本星期的某一天比如星期日 S:不知道 O:SELECT Next_day(sysdate,7) vaule FROM DUAL; (42).字符串转时间 S:可以直接转或者select cast(2004-09-08as datetime) value O:SELECT To_date(2004-01-05 22:09:38,yyyy-mm-dd hh24-mi-ss) vaule FROM DUAL; (43).求两日期某一部分的差比如秒 S:select datediff(ss,getdate(),getdate()12.3) value O:直接用两个日期相减比如d1-d212.3 SELECT (d1-d2)*24*60*60 vaule FROM DUAL; (44).根据差值求新的日期比如分钟 S:select dateadd(mi,8,getdate()) value O:SELECT sysdate8/60/24 vaule FROM DUAL; (45).求不同时区时间 S:不知道 O:SELECT New_time(sysdate,ydt,gmt ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt------- AST ADT 大西洋标准时间 BST BDT 白令海标准时间 CST CDT 中部标准时间 EST EDT 东部标准时间 GMT 格林尼治标准时间 HST HDT 阿拉斯加 夏威夷标准时间 MST MDT 山区标准时间 NST 纽芬兰标准时间 PST PDT 太平洋标准时间 YST YDT YUKON标准时间
5、redhat9终端方式下更改时区偶曾经问过的问题现在仍有兄弟在问特整理了一下 由于redhat9不能象以前那样配置时区。经常会出现错误 没图形界面 用 /usr/sbin/timeconfig 错误如下 ...... 用 redhat-config-time 要求有xwin redhat-config-date requires a currently running X server.
所以更改时区可以使用 tzselect這个指令來修改你的时区 当然你也可不用命令如果习惯文件修改的话 可修改/etc/sysconfig/clock ZONEAsia/Shanghai 查/usr/share/zoneinfo 下面的文件。 UTCfalse 硬件时钟是否为 UTC 或者说 GMT 时钟。 ARCfalse 如果是在 Alpha 机器上则设置为 true 。 把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制缺点时在安装有多重操作系统启动的机器上在另外的操作系统上时钟会错误。 根据自己的需要选你所在时区后然后 rm /etc/localtime 是以上海为例的哦 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 重起机器后时区就改变了 。 如果你在某些应用下面的时间是错误的那么你在运行 Red Hat Linux 5.0 或 5.1解决的办法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符号连接 ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
时区 与 UTC 的偏移量 描述 NZDT 13:00 新西兰白昼时间夏时制 IDLE 12:00 国际日期变更线东边 NZST 12:00 新西兰标准时间 NZT 12:00 新西兰时间 AESST 11:00 澳大利亚东部标准夏时制 ACSST 10:30 中澳大利亚标准夏时制 CADT 10:30 中澳大利亚夏时制 SADT 10:30 南澳大利亚夏时制 AEST 10:00 澳大利亚东部标准时间 EAST 10:00 东澳大利亚标准时间 GST 10:00 关岛标准时间USSR Zone 9 LIGT 10:00 澳大利亚墨尔本 ACST 09:30 中澳大利亚标准时间 CAST 09:30 中澳大利亚标准时间 SAT 9:30 南澳大利亚标准时间 AWSST 9:00 澳大利亚西部标准夏时制 JST 9:00 日本标准时间USSR Zone 8 KST 9:00 韩国标准时间 WDT 9:00 西澳大利亚夏时制 MT 8:30 毛里求斯时间 AWST 8:00 澳大利亚西部标准时间 CCT 8:00 中国沿海时间 WADT 8:00 西澳大利亚夏时制 WST 8:00 西澳大利亚时间 JT 7:30 爪哇时间译注这里的 Java 可不是语言 WAST 7:00 西澳大利亚标准时间 IT 3:30 伊朗时间 BT 3:00 巴格达时间 EETDST 3:00 东欧夏时制 CETDST 2:00 中欧夏时制 EET 2:00 东欧USSR Zone 1 FWT 2:00 法国冬时制 IST 2:00 以色列标准时间 MEST 2:00 中欧夏时制 METDST 2:00 中欧白昼时间 SST 2:00 瑞典夏时制 BST 1:00 英国夏时制 CET 1:00 中欧时间 DNT 1:00 Dansk Normal Tid DST 1:00 Dansk Standard Time FST 1:00 法国夏时制 MET 1:00 中欧时间 MEWT 1:00 中欧冬时制 MEZ 1:00 中欧时区 NOR 1:00 挪威标准时间 SET 1:00 Seychelles Time SWT 1:00 瑞典冬时制 WETDST 1:00 西欧光照利用时间夏时制 GMT 0:00 格林威治平均时间 WET 0:00 西欧 WAT -1:00 西非时间 NDT -2:30 纽芬兰新大陆白昼时间 ADT -03:00 大西洋白昼时间 NFT -3:30 纽芬兰新大陆标准时间 NST -3:30 纽芬兰新大陆标准时间 AST -4:00 大西洋标准时间加拿大 EDT -4:00 东部白昼时间 ZP4 -4:00 GMT 4 小时 CDT -5:00 中部白昼时间 EST -5:00 东部标准时间 ZP5 -5:00 GMT 5 小时 CST -6:00 中部标准时间 MDT -6:00 山区白昼时间译注Mountain Daylight Time那位知道怎么译 ZP6 -6:00 GMT 6 小时 MST -7:00 山区标准时间 PDT -7:00 太平洋白昼时间 PST -8:00 太平洋标准时间 YDT -8:00 Yukon 白昼时间 HDT -9:00 夏威仪/阿拉斯加白昼时间 YST -9:00 Yukon 标准时间 AHST -10:00 夏威仪-阿拉斯加标准时间 CAT -10:00 中阿拉斯加时间 NT -11:00 州时间Nome Time IDLW -12:00 国际日期变更线西边
-----------英文版--老版本歧视性没有中国大陆抗议----
常用的几个时区 GMT:Greenwich Mean Time ET:U.S. Eastern Time -5 PST:Pacific Standard Time -8
GMT -11:00 Samoa GMT -10:00 U.S. Hawaiian Time GMT -09:30 Marquesas GMT -09:00 U.S. Alaska Time GMT -08:30 Pitcarn GMT -08:00 Pacific Time GMT -07:00 U.S. Mountain Time GMT -07:00 U.S. Mountain Time (Arizona) GMT -06:00 U.S. Central Time GMT -06:00 Mexico GMT -05:00 U.S. Eastern Time GMT -05:00 U.S. Eastern Time (Indiana) GMT -05:00 Columbia, Peru, South America GMT -04:00 Atlantic Time GMT -03:30 Newfoundland, Canada GMT -03:00 Argentina GMT -03:00 Brazil GMT -02:00 Mid-Atlantic GMT -01:00 Azores GMT U.K., Spain GMT 01:00 Western Europe GMT 02:00 Eastern Europe GMT 02:00 Egypt GMT 02:00 Israel GMT 03:00 Russia GMT 03:00 Saudi Arabia GMT 03:30 Iran GMT 04:00 Arabian GMT 04:30 Afghanistan GMT 05:00 Pakistan, West Asia GMT 05:30 India GMT 06:00 Bangladesh, Central Asia GMT 06:30 Burma GMT 07:00 Bangkok, Hanoi, Jakarta GMT 08:00 China, Taiwan GMT 08:00 Singapore GMT 08:00 Australia (WT) GMT 09:00 Japan GMT 09:00 Korea GMT 09:30 Australia (CT) GMT 10:00 Australia (ET) GMT 10:30 Australia (Lord Howe) GMT 11:00 Central Pacific GMT 11:30 Norfolk Islands GMT 12:00 Fiji, New Zealand
6、JAVA中的时区
java.util 类 TimeZonejava.lang.Object java.util.TimeZone 所有已实现的接口 Serializable, Cloneable 直接已知子类 SimpleTimeZone public abstract class TimeZoneextends Objectimplements Serializable, Cloneable
TimeZone 表示时区偏移量也可以计算夏令时。 通常使用 getDefault 获得 TimeZonegetDefault 基于程序运行所在的时区创建 TimeZone。例如对于在日本运行的程序getDefault 基于日本标准时间创建 TimeZone 对象。 也可以用 getTimeZone 及时区 ID 获取 TimeZone 。例如美国太平洋时区的时区 ID 是 America/Los_Angeles。因此可以使用下面语句获得美国太平洋时间 TimeZone 对象
TimeZone tz TimeZone.getTimeZone(America/Los_Angeles);
可以使用 getAvailableIDs 方法来对所有受支持的时区 ID 进行迭代。可以选择受支持的 ID 来获得 TimeZone。如果想要的时区无法用受支持的 ID 之一表示那么可以指定自定义时区 ID 来生成 TimeZone。自定义时区 ID 的语法是
CustomID: GMT Sign Hours : Minutes
GMT Sign Hours Minutes
GMT Sign Hours
Sign: 下面之一
-
Hours:
Digit
Digit Digit
Minutes:
Digit Digit
Digit: 下面之一
0 1 2 3 4 5 6 7 8 9
Hours 必须在 0 至 23 之间Minutes 必须在 00 至 59 之间。例如GMT10 和 GMT0010 分别意味着比 GMT 提前 10 小时和 10 分钟。 格式是与区域无关的并且数字必须取自 Unicode 标准的 Basic Latin 块。没有夏令时转换安排可以用自定义时区 ID 指定。如果指定的字符串与语法不匹配就使用 GMT。 当创建一个 TimeZone 时指定的自定义时区 ID 采用下面的语法进行标准化 NormalizedCustomID:
GMT Sign TwoDigitHours : Minutes
Sign: 下面之一
-
TwoDigitHours:
Digit Digit
Minutes:
Digit Digit
Digit: 下面之一
0 1 2 3 4 5 6 7 8 9
例如TimeZone.getTimeZone(GMT-8).getID() 返回 GMT-08:00。 关于三字母时区 ID为了与 JDK 1.1.x 兼容一些三字母时区 ID比如 PST、CTT、AST也受支持。但是它们的使用被废弃这是因为相同的缩写经常用于多个时区例如CST 可以是美国的 Central Standard Time 和 China Standard Time但是 Java 平台只可以识别其中一种。7来源网址http://www.hi-pda.com/forum/archiver/tid-334908.htmlhttp://www.soudie.net/top_27701_cat_21/http://database.ccidnet.com/art/1105/20070115/1001341_1.htmlhttp://www.cnblogs.com/zhangqh/archive/2005/09/08/232598.htmlhttp://www.chinaunix.net/jh/4/468256.htmlhttp://eyejava.javaeye.com/blog/29653http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/TimeZone.html