相关疑难解决方法(0)

如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.

对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:

>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

datetime android android-gradle-plugin threetenbp threetenabp

169
推荐指数
3
解决办法
2万
查看次数

Java 8 ZoneOffset - 如何获取当前系统UTC偏移量

我想获得我系统的当前ZoneOffset.
我试图这样做,但我找不到办法.
此外,我一直在寻找解决方案,但我没有找到任何解决方案.
是否有可能在Java中这样做?

编辑:
我的问题与不同.我想知道当前的系统UTC,而不是如何在TimeZone偏移表示或TimeZone存储之间进行转换.

java time utc java-8 java-time

11
推荐指数
2
解决办法
1万
查看次数

AWS Cloudwatch事件 - 如何触发不同的时区?

我有一堆AWS Lambda函数,我想在一天中的某些时间触发,但那些时间在不同的时区.例如,我可能希望触发事件:

  • 悉尼时间下午4:55
  • 芝加哥时间下午6:30
  • 芝加哥时间晚上9点

...等等.

使用Cloudwatch事件,无论我使用哪个AWS区域,似乎我只能指定使用UTC触发的事件(即伦敦时间).今天,那很好; 我可以计算出伦敦和悉尼,伦敦和芝加哥之间的时差等等 - 然而,夏季时间在不同城市的不同日期生效,这将导致我的Lambdas在错误的时间触发它确实.

有没有办法使用非UTC时间设置触发这些Cloudwatch事件?或者,我是否可以使用除Cloudwatch之外的其他机制在一天中的特定时间触发Lambda函数,并在我想要的时区中指定那些时间?

提前致谢

timezone amazon-web-services amazon-cloudwatch aws-lambda

7
推荐指数
1
解决办法
3270
查看次数

从GAE服务器向GWT客户端发送日期和时区

好的伙计们,我已经解决了这个问题大约两个星期了,现在尝试我能想到的一切,并在这里看到大量的答案,感觉他们会回答它,但我只是无法弄清楚我的意思是做我正在尝试做的事情,这让我绝对坚持!似乎没有人在任何地方找到答案,到处都有一半的答案,但似乎没有人真正做我需要它做的事情,当然有人已经解决了这个问题!请原谅真正长的问题,但重要的是问题是正确的,所以答案实际上满足了需要!:d

如果您可能提供任何不考虑我的数据存储区/服务器是Google App Engine(GAE),而我的客户端是用Google Web Toolkit(GWT)编写的答案,请不要再费心阅读了.是用Java编写的,我对Python或MySQL或PHP或类似的东西都不了解

最后,如果有人知道一个更好的地方来计算这样的东西,请告诉我,因为我不断提出这样的问题,不知道如何找到除此之外的解决方案,或花费数小时搜索谷歌对于已经设法解决的其他人.我也不明白如何从JavaDocs中找出任何东西 - 抱歉,但是直到有人向我解释,我才不会得到它

我有一个存储在服务器上的日期时间(显然是UTC)我还在服务器上存储了一个存储为字符串的每个业务所有者的TimeZone(例如"America/New_York").这个字符串是通过java.util.TimeZone.getAvailableIDs()在服务器上使用并让业务所有者为他们的业务选择相关时区获得的(默认是"Europe/London"如果他们没有选择任何东西 - 不需要挂断那个位)我需要传递任何日期时间在未来的某个时间点到客户端PC,在他们的PC上忽略本地时区,因为日期时间需要根据业务所有者的时区显示.

举例来说,企业主是伦敦的理发师,他们有在线预约时间表,任何潜在客户都可以查看.其中一位客户(也在伦敦)想预约,在9月3日星期一上午9点​​看到一个位置并预订.

然后将其作为UTC时间(实际上是0800,因为BST是UTC + 1)存储在数据存储区中,当然业务所有者已选择"Europe/London"作为其时区.到目前为止一切都很好.

现在,在未来的某个时刻,客户正在纽约举行商务会议,并意识到他们在接下来的一周预约在伦敦理发,他们希望将其移动一周,所以他们接着尝试查看预约(在美发师预约簿中),但他们不希望将其视为纽约时间凌晨4点,他们希望将其视为英国时间早上9点.

所以我的问题是,当客户在9月3日点击VIEW约会时,服务器可以发回UTC日期时间0800和java.util.TimeZoneID字符串"Europe/London"

但因为在客户端我只能使用

com.google.gwt.i18n.client.TimeZone
Run Code Online (Sandbox Code Playgroud)

它不允许我使用该功能

TimeZone bizTimeZone=TimeZone.getTimeZone("Europe/London")
(which works for `java.util.TimeZone`)
Run Code Online (Sandbox Code Playgroud)

因为它会导致错误

"The method getTimeZone(String) is undefined for the type TimeZone"
Run Code Online (Sandbox Code Playgroud)

它建议改变它

com.google.gwt.i18n.client.TimeZone.createTimeZone("Europe/London")
Run Code Online (Sandbox Code Playgroud)

但是这个版本,期待一个GWT com.google.gwt.i18n.client.TimeZoneConstants"对象"(示例显示在此消息的末尾)而不是java.util.TimeZone.createTimeZone()将接受的简单字符串.

我可以使用以下方法创建:

final TimeZoneConstants constTz = GWT.create(TimeZoneConstants.class);
final TimeZone timeZoneCali = TimeZone.createTimeZone(constTz.europeLondon());
Run Code Online (Sandbox Code Playgroud)

但是当我开始使用"Europe/London"和/或我不知道如何将此对象存储到App Engine数据库中然后稍后检索它时,我不知道该怎么做.

顺便提一下,在评论文本中我也尝试使用以下几行:

//Calendar tmad = new GregorianCalendar(TimeZone.getTimeZone("Europe/London"));
//Calendar cal = Calendar.getInstance(someTimeZone); …
Run Code Online (Sandbox Code Playgroud)

java gwt timezone google-app-engine gwt-rpc

6
推荐指数
1
解决办法
4295
查看次数

AWS CloudWatch 当地时间

是否可以在 AWS CloudWatch 中以当地时间设置计划 cron 时间?

使用 CET/CEST 代替 GMT?

例如,我想在当地时间 13:00 设置 cron 时间,而不计算时区差异(冬季时间为 1 小时,夏季时间为 2 小时)

cron timezone amazon-web-services amazon-cloudwatch

5
推荐指数
1
解决办法
3170
查看次数

如何在Java中获取时区的UTC偏移量?

给定timezone(America/New_York),我如何获得UTC偏移量?

我尝试过使用java.util.TimeZone但没有运气.如果解决方案可行,我也可以使用Joda Time.

java timezone jodatime timezone-offset

2
推荐指数
1
解决办法
1万
查看次数