- 浏览: 1087507 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
skyesx:
这是2PC实现,更常用的是一个柔性事务的实现,可以参考http ...
Spring分布式事务实现 -
ddbird:
这第一句就不严谨“分布式事务是指操作多个数据库之间的事务”,显 ...
Spring分布式事务实现 -
呵呵6666:
基于互联网支付系统的微服务架构分布式事务解决方案http:// ...
Spring分布式事务实现 -
小黄牛:
写得不错,交流群:472213887
Spring分布式事务实现 -
jiaoqf321456:
这明明是用的apache的压缩,给ant.jar有半毛钱关系吗 ...
使用ant.jar进行文件zip压缩
protected static Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void printSysProperties(){ Properties props=System.getProperties(); Iterator iter=props.keySet().iterator(); while(iter.hasNext()){ String key=(String)iter.next(); System.out.println(key+" = "+ props.get(key)); } } /** * timeZoneOffset表示时区,如中国一般使用东八区,因此timeZoneOffset就是8 * @param timeZoneOffset * @return */ public String getFormatedDateString(int timeZoneOffset){ if (timeZoneOffset > 13 || timeZoneOffset < -12) { timeZoneOffset = 0; } TimeZone timeZone; String[] ids = TimeZone.getAvailableIDs(timeZoneOffset * 60 * 60 * 1000); if (ids.length == 0) { // if no ids were returned, something is wrong. use default TimeZone timeZone = TimeZone.getDefault(); } else { timeZone = new SimpleTimeZone(timeZoneOffset * 60 * 60 * 1000, ids[0]); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(timeZone); return sdf.format(new Date()); } public static String getFormatedDateString(String _timeZone){ TimeZone timeZone = null; if(StringUtils.isEmpty(_timeZone)){ timeZone = TimeZone.getDefault(); }else{ timeZone = TimeZone.getTimeZone(_timeZone); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); sdf.setTimeZone(timeZone); //TimeZone.setDefault(timeZone); return sdf.format(new Date()); } public static void setCNTimeZone(){ final TimeZone zone = TimeZone.getTimeZone("GMT+8"); TimeZone.setDefault(zone); } public static void main(String args[]){ System.out.println(getFormatedDateString("")); System.out.println(getFormatedDateString("Asia/Shanghai")); System.out.println(getFormatedDateString("Japan")); System.out.println(getFormatedDateString("Europe/Madrid")); System.out.println(getFormatedDateString("GMT+8:00")); printSysProperties(); }
时间区域和JAVA
涉及有关时间区域信息时Java和Solaris很相似。每个时间区域都有一个时间区域ID标识符。在J2SE 1.3 and 1.4中,这个ID是个字符串,是由位于J2SE 安装程序的jre/lib子目录中的tzmappings文件这些ID列表。 J2SE 1.3 仅仅只包含tzmappings文件,但是 J2SE 1.4包含世界不同地区的时间区域数据文件。jre/lib/zi存放着这些文件。在J2SE 1.4里,sun.util.calendar.ZoneInfo从这些文件获取DST规则。在Solaris中, 这些时间区域数据文件是以二进制形式存放的,不是文本文件,因此你不能看它们。 在J2SE 1.4中的时间区域数据文件和在Solaris中是不同的。
java.util.TimeZone类中getDefault方法的源代码显示,它最终是会调用sun.util.calendar.ZoneInfo类的getTimeZone 方法。这个方法为需要的时间区域返回一个作为ID的String参数。这个默认的时间区域ID是从 user.timezone (system)属性那里得到。如果user.timezone没有定义,它就会尝试从user.country和java.home (System)属性来得到ID。 如果它没有成功找到一个时间区域ID,它就会使用一个"fallback" 的GMT值。换句话说, 如果它没有计算出你的时间区域ID,它将使用GMT作为你默认的时间区域。
注意,System属性是在java.lang.System类的initProperties方法中被初始化的。这是一个本地方法。因此源代码是不可用的----除非你深入到J2SE分发包中的本地代码库中去研究。然而,在Windows系统中,System 属性是从Windows注册表中被初始化的,而在Linux/Unix中是由环境变量来进行初始化。initProperties方法的Javadoc声明,某些属性"必须保证被定义" 且列出它们。被java.util.TimeZone类的getDefault方法使用的三个System属性中,只有java.home作为一种“保证的”属性在Javadoc中被列出。
推荐的解决方案
因此,你如何确保JAVA能给你正确的时间和日期呢?最好的办法是确认JAVA虚拟机(JVM)的默认TimeZone类是正确的,且是适合你的地理范围(Locale)的。你如何来确保默认TimeZone是正确的且适合的呢?这又是一个新问题了。象大多数处理的问题一样,这个也有许多解决方案。根据java.util.TimeZone.getDefault方法的源代码来看,最好的办法是正确地设置user.timezone属性。在启动JAVA虚拟机时,你能很容易的通过使用 -D 命令 -line 参数的办法来覆盖(override)在java.lang.System.initProperties方法中所设置的值。例如:
java -Duser.timezone=Asia/Shanghai DateTest
这个命令启动DateTest类,并设置 user.timezone属性到Asia/Shanghai。你也能够通过使用java.lang.System 类的setProperty方法来设置user.timezone 属性:
System.setProperty("user.timezone","Asia/Shanghai");如果没有一个可用的时间区域ID适合你,那么就你可以创建一个自定义TimeZone 使用java.util.TimeZone 类的 setDefault 方法将它设置为默认的时间区域----就象我先前在ItsInitializer 类中所做的操作一样。
记住,在J2SE中,大多数日期和时间相关的类都包含时间区域信息,包括那些格式类,如java.text.DateFormat, 因此它们都会被JVM的默认时间区域所影响。然而,在你创建这些类的实例时,你能为它们确保正确的时间区域信息,使得你可以更容易来设置整个JVM的默认时间区域。并且一旦设置好,就可以确保所有的这些类都将使用同一个默认的时间区域。
附:
Date Time Timestamp
评论
5 楼
netwelfare
2015-05-23
这里有篇《时间纪元与时区介绍》,讲解的也不错。
4 楼
taoge2121
2012-02-14
碰到过这种问题
3 楼
tuhaitao
2011-08-15
tuhaitao 写道
写的好,顶楼主
由于你写的太好了,我引用了一段,相信哥们你不会介意的
2 楼
tuhaitao
2011-08-15
写的好,顶楼主
1 楼
guodong66
2011-01-13
发表评论
-
使用zxing.jar生成二维码
2015-10-15 13:52 01、ZxingCodeUtils /** * 使用Zx ... -
Java生成条形码与二维码
2015-09-29 11:02 0一、一维条形码 /** * 利用jbarcode.ja ... -
将html特殊码( &#x)转换成字符
2015-06-09 11:54 0public static void main(St ... -
Java多线程编程
2013-10-16 13:45 0一、线程安全的延迟初始化 1、基于volatile的双重检查锁 ... -
Java常用方法整理
2013-06-13 16:00 01、判断是否为中文字符 /** * 判断是否为中文 ... -
使用servicemix实现FTP连接池
2013-06-13 13:17 0一、配置文件 <?xml version=" ... -
嵌入式运行HttpServer
2015-06-30 13:14 1668一、嵌入式运行Jetty并提供上传文件功能 1、定义处理请求的 ... -
使用Quartz执行定时任务
2012-05-24 11:00 0一、在application中运用 (1)定义任务 pac ... -
Java内存泄漏分析与解决方案
2012-03-18 13:49 0作为Internet最流行的编程语言之一,Java现正非常 ... -
java访问FtpSever
2011-10-09 15:18 0使用apache common-net包来实现。 ... -
JNI(Java Native Interface)的使用
2015-06-30 13:12 3200Java JNI是Java Native Interf ... -
Java Regular Expressions Syntax
2009-07-22 20:54 2997一、正则表达式语法 1. ... -
jsp custom taglib
2009-07-10 12:20 01.java文件 public class Repeate ... -
java filter
2009-07-10 12:13 17258过滤器Filter也具有生命周期:init()-> ... -
HTTP 头部详细解释
2009-07-09 11:46 01. Accept:告诉WEB服务器 ... -
JavaMail读发邮件
2009-07-07 14:04 6204一、基本概念: SMTP(Simple Mail Tra ... -
java 验证码/Checked vs UnChecked Exception
2009-06-15 10:54 2240<一>、Java生成验证码图片 1.Servlet ... -
jsp统计在线人数和在线注册人数
2009-05-31 12:50 9121一、统计在线人数 1.监 ... -
JPA是什么
2009-03-28 18:59 2376JPA全称为Java Persiste ... -
用dom4j读写xml
2009-03-18 21:57 3489一、例子 public class XML ...
相关推荐
世界范围内的时区列表。由 java.util.TimeZone 类导出
主要介绍了Java Timezone类常见问题的相关资料,需要的朋友可以参考下
今天遇到了一个比较有意思的问题,从服务器上封装好的java.sql.timestamp对象返回到本地客户端程序后与数据库中的时间相差了整整14个小时。因为跟客户的时差是14个小时,所以大体怀疑是时差问题。
NULL 博文链接:https://bchen.iteye.com/blog/1632845
TimeZone可以用来获取或者规定时区,也可以用来计算时差,这里我们就来详解Java中的时区类TimeZone的用法,特别要注意下面所提到的TimeZone相关的时间校准问题.
主要介绍了Java对世界不同时区timezone之间时间转换的处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat的区别于用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
环境: Eclipse Java EE IDE for Web Developers. Version: Oxygen.3a Release (4.7.3a) mysql-connector-java-8.0.11 MySQL Server 8.0 ...useSSL=true&serverTimezone=GMT", "root", "123456")
主要介绍了解决IDEA错误 Cause: java.sql.SQLException: The server time zone value的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. 内包含两种解决办法
java.io.FileNotFoundException 报错解决 高版本jdk 运行 java -jar 时 缺少 jdk1.8中的这个文件
菁菁整站 v3.1 繁体正式版
超高频开发包xy-new.part06.rar
8.TimeZone 9.Class 10.BigDecimal 11.BigInteger 12.Class 13.StringBuffer 14.StringBuilder 15.URI 16.URL 17.UUID 18.Locale 19.Currency 20.TimeZone 21.java.util.Date 22.java.sql.Date 23....
You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. 出现
import java.util.TimeZone; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Encoder; class Demo { public static String calcAuthorization(String source, String ...
在java程序中使用JDBC,Class.forName()方法,参数用"com.mysql.cj.jdbc.Driver" (com.mysql.jdbc.Driver已经弃用了),url要加上serverTimezone,例如serverTimezone=GMT,否则会报错。 MySQL 8.0 以上版本驱动包...
characterEncoding=utf-8&serverTimezone=GMT%2B8"; String USER = "root"; String PASSWORD = "root"; //导出Excel的路径 String filePath = "E:/" + dbName + "-db-dict-export.xls"; WritableWorkbook wwb ...
Java支持mysql8.0x的jdbc驱动和c3p0库,包含如下三个jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.15.jar mysql-connector-java-8.0.12.jar JDBC驱动类库名称变化 driverClass 由原来的 ...serverTimezone=GMT+8
TimeZone tz = TimeZone.getTimeZone("GMT 08:00"); // 指定时区为东八区 DateField dateAndTime = new DateField("日期和时间", DateField.DATE_TIME,tz); // 创建包含日期字段和时间字段的DateField对象date...