以下脚本应根据偏移量-10(夏威夷)显示当前本地时间,但它不起作用.
无法弄清楚我哪里出错了.
<h3>Current Time in Arizona is
<script type="text/javascript">
<!--
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
if (minutes < 10)
minutes = "0" + minutes
var suffix = "AM";
if (hours >= 12) {
suffix = "PM";
hours = hours - 12;
}
if (hours == 0) {
hours = 12;
}
document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>")
//-->
</script>
</h3>
Run Code Online (Sandbox Code Playgroud) 给定timezone(America/New_York),我如何获得UTC偏移量?
我尝试过使用java.util.TimeZone但没有运气.如果解决方案可行,我也可以使用Joda Time.
?timezones 状态 "Most platforms support time zones of the form GMT+n and GMT-n, which assume at a fixed offset from UTC (hence no DST)."
我今年早些时候使用旧代码tz="GMT-8".只有对我的计算机的更改已经更新到R版本"R version 3.2.2 (2015-08-14)"并通过向我的Rprofile添加一行代码从旧用户帐户迁移我的库"C:\Program Files\R\R-3.2.2\library\base\R".只是要详细的代码了.libPaths(c("C:/Users/XXXX XXXX/Documents/R/win-library/3.2",.Library.site)).为什么我的系统突然不接受这种tz格式?我可以更改哪些系统设置来解决此问题?
下面的工作示例.
tdat<-c("11/19/2014 12:45", "11/19/2014 13:00", "11/19/2014 13:15",
"11/19/2014 13:30", "11/19/2014 13:45", "11/19/2014 14:00", "11/19/2014 14:15",
"11/19/2014 14:30", "11/19/2014 14:45", "11/19/2014 15:00")
as.POSIXct(strptime(tdat,"%m/%d/%Y %H:%M",tz="GMT-8"))
Warning messages:
1: In strptime(tdat, "%m/%d/%Y %H:%M", tz = "GMT-8") :
unknown timezone 'GMT-8'
2: In as.POSIXct.POSIXlt(strptime(tdat, "%m/%d/%Y %H:%M", …Run Code Online (Sandbox Code Playgroud) 我试图了解Postgre中的时间戳和时区。我想我明白了,直到我写这篇文章为止。
专注于“在时区之间转换”部分。它有两个例子。
(将默认时区配置考虑为UTC。)
例子1
db=# SELECT timezone('US/Pacific', '2016-01-01 00:00'); outputs 2015-12-31 16:00:00
Run Code Online (Sandbox Code Playgroud)
根据本文和我的理解,由于该函数的'2016-01-01 00:00'一部分timezone只是一个字符串,因此将其静默转换为默认的UTC。因此,'2016-01-01 00:00' UTC然后将其转换US/Pacific为timezone函数所要求的,即2015-12-31 16:00:00。
例子2
db=# SELECT timezone('US/Pacific', '2016-01-01 00:00'::timestamp); outputs 2016-01-01 08:00:00+00
Run Code Online (Sandbox Code Playgroud)
不好意思,我不明白为什么,那里的解释也无济于事。好的,函数的'2016-01-01 00:00'::timestamp一部分timezone不再是字符串,而是实际的时间戳。在什么时区?如果是UTC,则输出必须与示例1相同。因此,它将自动转换为US/Pacific?。那么输出是UTC吗?但为什么?我要求的 不是US/Pacific我timezone的UTC。
请说明timezone何时获取时间戳并被要求转换时间戳时的行为。谢谢。
postgresql timezone timestamp timezone-offset timestamp-with-timezone
我已经看到了很多关于这方面的资源,但我无法得到的一件事是在转换过程中转换毫秒时间戳时,我如何添加相应的时区。
Date date = new Date(Long.valueOf(dateInMil*1000L);
SimpleDateFormat myDate = new SimpleDateFormat("EEE, MMM d, ''yy");
String formatted = myDate.format(date);
Run Code Online (Sandbox Code Playgroud)
现在,如果我在字符串格式中有一个时区/偏移量,即“-04:00”或“+2:00”,如何将其应用于上述内容,以便获得正确的日期?
具有时区的ISO 8601日期时间的格式如下:
2018-09-07T05:28:42Z
Run Code Online (Sandbox Code Playgroud)
但是,我需要在系统中表示一些日期,其精度是天,而不是秒,这意味着它将是ISO 8601日历日期。日历日期的格式如下:
2018-09-07
Run Code Online (Sandbox Code Playgroud)
在有关该标准的Wikipedia文章中(我无权访问该标准本身,因为您必须为此特权付费),在讨论日期时没有提及时区。它确实谈到了省略部分时间:
为了简洁起见,基本或扩展时间格式中都可以省略秒或分钟和秒,但会降低精度:[hh]:[mm],[hh] [mm]和[hh]是降低的精度时间格式。
由此看来,您似乎不能省略小时,因此我无法这样写一个日历日期:
2018-09-07TZ
Run Code Online (Sandbox Code Playgroud)
看来,我能做的最好的事情就是缩短时间:
2018-09-07T00Z
Run Code Online (Sandbox Code Playgroud)
但是,如果我可以避免的话,我就不想这样做,因为我为日期添加的精度比实际的精度更高。该日期表示“在UTC时区的2018年9月7日的某个时间”,而不是“在UTC时区的2018年9月7日的午夜的某个时间”。
有什么建议么?
我正在使用Weather API将天气信息作为我项目的一项服务。我试图了解一些我似乎找不到信息的时区偏移量。
我使用的网址是:
https://api.weather.gov/gridpoints/VEF/154,48
Run Code Online (Sandbox Code Playgroud)
这是一些示例返回值:
"temperature": {
"sourceUnit": "F",
"uom": "unit:degC",
"values": [
{
"validTime": "2019-05-11T16:00:00+00:00/PT1H",
"value": 18.333333333333371
},
{
"validTime": "2019-05-12T04:00:00+00:00/PT2H",
"value": 16.1111111111112
},
{
"validTime": "2019-05-12T21:00:00+00:00/PT4H",
"value": 26.666666666666742
},
...
]
}
Run Code Online (Sandbox Code Playgroud)
我知道PT的意思是太平洋时区。但是我似乎找不到像1H,2H等字符旁边的任何信息。
如果有人可以建议,将不胜感激-谢谢
我使用 Azure 数据资源管理器来存储温度传感器值。时间戳采用 UTC 时间。我想在过去 7 天内按天汇总这些值。尽管如此,我想使用这些值的来源地本地时间,并按本地时间的时间戳进行聚合(例如,午夜将在 00:00+2h 和 22:00UTC)。如何使用 ADX 中的 Kusto 查询语言执行此操作?
timezone timezone-offset timestamp-with-timezone azure-data-explorer
根据夏令时,澳大利亚/悉尼时区偏移(UTC 与 AEST 之差)为 +10:00(从 4 月第一个星期日开始)和 +11:00(从 10 月第一个星期日开始)。
差别是 600 分钟或 660 分钟。
如何获取 javascript/nodejs/momentjs 中的时差?不考虑服务器时间吗?
我使用以下方法获取时区偏移值,例如 GMT-3,并返回给定偏移量的 time zoneId 列表。
private static List<String> getTimeZonesByZoneOffset(final int offset) {
return ZoneId.getAvailableZoneIds()
.stream()
.filter(zoneId -> ZoneId.of(zoneId)
.getRules()
.getOffset(Instant.now())
.equals(ZoneOffset.ofHours(offset)))
.sorted()
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
然后我从我的数据库中检索与我的区域列表具有相同 zoneId 的相应记录。我在我的服务中使用了这样的方法:
public List<Product> getByOffset(int offset) {
final List<String> zones = getTimeZonesByZoneOffset(offset);
final List<Product> products = productRepository.findAllByZone(zones);
return getProductList(products);
}
Run Code Online (Sandbox Code Playgroud)
我想在单元测试中测试这两种方法。但我不确定我应该如何设置测试机制。是否有任何单元测试示例?
timezone-offset ×10
timezone ×8
java ×3
date ×2
javascript ×2
datetime ×1
iso8601 ×1
jodatime ×1
momentjs ×1
node.js ×1
postgresql ×1
r ×1
testing ×1
timestamp ×1
unit-testing ×1