我有一个需要识别时区的 Java 应用程序。当我采用 Unix 纪元时间并尝试将其转换为时间戳以用于 Oracle SQL 调用时,它获得了正确的时区,但时区“useDaylightTime”值不正确,即它当前返回“true” ,当我们不在 DST 时(我在 TZ“America/New_York”的佛罗里达州)。
它在 Red Hat Linux Enterprise 6 上运行,据我所知,它正确设置了时区,例如“日期”返回: 2012 年 11 月 28 日星期三 12:30:12 EST
我还可以看到,使用“zdump”实用程序,“isdst”的当前值为 0。
我的 Java 版本是 1.6.0_31。
我用谷歌搜索了这个并看到了这导致的许多问题,但其中很多只是说要手动设置 TZ,但我的问题不是 TZ,而是默认 TZ 将“isDaylight”设置为'真的'。我相信这会导致我的查询返回一小时后的数据(我可以看到它是)。
这是我运行的一段简单代码,试图以最简单的方式重现它:
public class TZdefault {
public static void main(String[] args) throws IOException {
long startTime = System.currentTimeMillis()/1000;
Calendar start = Calendar.getInstance();
start.setTimeInMillis(startTime);
start.setTimeZone(TimeZone.getDefault());
System.out.println("Start UTC: " + start + "ms: " + start.getTimeInMillis());
System.out.println("use daylight: " + start.getTimeZone().useDaylightTime());
} // end main
} // end class
最后一件事。如果在我的代码中我将 TZ 设置为“EST”,它当然会返回一个“isDaylight”设置为 False 的 TZ。但这不是一个好的解决方案。
我想添加一些我一直希望隐藏的更多细节。
我在 Oracle 11g 数据库中有使用带有 TIMEZONE 字段的 TIMESTAMP 的记录。我只是在执行 JDBC 查询,其中两个参数使用 BETWEEN 开始时间戳和结束时间戳。
当我查询此表时,我正在使用一个使用日历条目的准备语句,其唯一目的是尝试操作时区。最重要的是,在应用“默认”时区后,我正在使用“getTimeInMillis”方法调用 pstmt.setTimestamp() 作为开始和结束时间。日志输出显示实际上它输入了正确的毫秒数,但返回的 SQL 结果明显偏差了 1 小时!
我仍在尝试验证数据插入端是否也没有问题。
但是我有很多调试信息,看起来我在 JDBC 查询中要求正确的时间。
最佳答案
the timezone
useDaylightTimevalue is not correct, i.e., it is currently returning "true", when we are NOT in DST
我认为您混淆了 useDaylightTime 和 inDaylightTime。前者告诉您 future 是否有夏令时和标准时间之间的转换,而不是您处于转换的哪一侧。例如,它对中国时区返回 false,因为中国不调整夏令时,但它对大多数美国时区返回 true,因为美国大多数州(Arizona 除外)都遵守夏令时。
inDaylightTimepublic abstract boolean inDaylightTime(Date date)Queries if the given date is in Daylight Saving Time in this time zone.
对比
useDaylightTimepublic abstract boolean useDaylightTime()Queries if this TimeZone uses Daylight Saving Time. If an underlying TimeZone implementation subclass supports historical and future Daylight Saving Time schedule changes, this method refers to the last known Daylight Saving Time rule that can be a future prediction and may not be the same as the current rule. Consider calling
observesDaylightTime()if the current rule should also be taken into account.
关于java - Java夏令时的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13611108/
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht