GMT和PST–关于时区的知识

GMT和PST–关于时区的知识http hi baidu com D2 B9 B7 C9 BF D5 blog item 114e181108ae html 关于时区的知识我们在网上浏览 在虚拟时空漫游世界时 经常会遇到

大家好,欢迎来到IT知识分享网。

http://hi.baidu.com/%D2%B9%B7%C9%BF%D5/blog/item/114e181108ae9116b8127b78.html

关于时区的知识

1、概念和换算
PST – 美国太平洋标准时间
GMT 格林威治标准时间

我们是东八区,加州是西八区,中间差16个小时。

2、关于日期中的时区标志。

3、教你怎样在Oracle 9i中正确转换时区

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 , 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-08’as 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-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
(44).根据差值求新的日期(比如分钟)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/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.






 

java.util 类 TimeZone
java.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 之间。例如,”GMT+10″ 和 “GMT+0010” 分别意味着比 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 平台只可以识别其中一种。

 

改过之后的就可以了。
下面是正确的程序
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
 
public class DBOP 
{
public static void main(String [] arg)
{
TimeZone time = TimeZone.getTimeZone(“GMT+8”); //设置为东八区
time = TimeZone.getDefault();// 这个是国际化所用的
System.out.println(time);
TimeZone.setDefault(time);// 设置时区
Calendar calendar = Calendar.getInstance();// 获取实例
DateFormat format1 = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);//构造格式化模板
Date date = calendar.getTime(); //获取Date对象
String str = new String();
str = format1.format(date);//对象进行格式化,获取字符串格式的输出
System.out.println(str);
}
}

 

 

得到当前的GTM 值

ZoneInfoFile.toCustomID(TimeZone.getDefault().getRawOffset()))
 Calendar rightNow = Calendar.getInstance();
 TimeZone time = TimeZone.getDefault();
 System.out.println(“11    ” + TimeZone.getTimeZone(“GMT”));
 System.out.println(“11 22==   ” + ZoneInfoFile.toCustomID(time.getRawOffset()));//rightNow.getTimeZone()



 

    1. SimpleDateFormat foo = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);  
    2. System.out.println(“foo:”+foo.format(new Date()));  
    3.   
    4. Calendar gc = GregorianCalendar.getInstance();  
    5. System.out.println(“gc.getTime():”+gc.getTime());  
    6. System.out.println(“gc.getTimeInMillis():”+new Date(gc.getTimeInMillis()));  
    7.   
    8. //当前系统默认时区的时间:  
    9. Calendar calendar=new GregorianCalendar();  
    10. System.out.print(“时区:”+calendar.getTimeZone().getID()+”  “);  
    11. System.out.println(“时间:”+calendar.get(Calendar.HOUR_OF_DAY)+“:”+calendar.get(Calendar.MINUTE));  
    12. //美国洛杉矶时区  
    13. TimeZone tz=TimeZone.getTimeZone(“America/Los_Angeles”);  
    14. //时区转换  
    15. calendar.setTimeZone(tz);  
    16. System.out.print(“时区:”+calendar.getTimeZone().getID()+”  “);  
    17. System.out.println(“时间:”+calendar.get(Calendar.HOUR_OF_DAY)+“:”+calendar.get(Calendar.MINUTE));  
    18. Date time=new Date();  
    19.   
    20. //1、取得本地时间:  
    21. java.util.Calendar cal = java.util.Calendar.getInstance();  
    22.   
    23. //2、取得时间偏移量:  
    24. int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);  
    25.      System.out.println(“===  ” + zoneOffset);  
                 System.out.println(“===  ” + zoneOffset/60*60*1000); 
    26. //3、取得夏令时差:  
    27. int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);  
    28.   
    29. //4、从本地时间里扣除这些差量,即可以取得UTC时间:  
    30. cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));  
    31.   
    32. //之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。  
    33. System.out.println(“UTC:”+new Date(cal.getTimeInMillis()));  
    34.   
    35. Calendar calendar1 = Calendar.getInstance();  
    36. TimeZone tztz = TimeZone.getTimeZone(“GMT”);         
    37. calendar1.setTimeZone(tztz);  
    38. System.out.println(calendar.getTime());  
    39. System.out.println(calendar.getTimeInMillis());

转载于:https://www.cnblogs.com/dym998877/archive/2012/04/28/2474991.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139747.html

(0)
上一篇 2025-06-02 15:15
下一篇 2025-06-02 15:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信