我在互联网上做了一些研究但仍然困惑.UNIX时间通用时间是否像GMT/UTC一样,或者它是否因地方时间而异地变化?
我知道UNIX时间从1970年1月1日00:00:00 GMT算起.当我在Java中使用getTime()函数时(更具体地说,日期d = new Date(); long currentTime d.getTime())我以毫秒为单位获取UNIX时间.现在如果A人和B人使用相同的功能坐在两个不同的时区,他们会得到相同的结果吗?
我有包含两列time且timezone具有事件时间戳的数据。例子是:
time timezone
1433848856453 10800000
Run Code Online (Sandbox Code Playgroud)
似乎时间戳在信息中也有小数秒。我不明白时区格式,但它必须是等效的 unix 格式。我也需要保留小数秒。我如何从那个变成类似 R 的东西?
2015-01-01 13:34:56.45 UTC
Run Code Online (Sandbox Code Playgroud)
注意:这个人类可读的日期不是显示的 unix 时间戳的实际转换值。
我有以下代码:
$date = new DateTime(date("Y-m-d H:i:s"), new DateTimeZone('Asia/Karachi'));
echo $date->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
输出:2015-08-26 17:46:05
实际结果应该是:2015-08-26 13:46:05
如何设置时区,以便实际输出?
我是Cassandra的新手。我有一个Cassandra(V:3.11)表(数据)。它具有timestamp类型的一列timeStampCol,我正在其中插入一个值。
insert into data (timeStampCol) values('2017-05-02 17:33:03');
Run Code Online (Sandbox Code Playgroud)
从表访问数据时
select * from data;
Run Code Online (Sandbox Code Playgroud)
我得到的结果是-
@ Row 1
----------+------------------------------------
timeStampCol | 2017-05-02 08:33:03.000000+0000
Run Code Online (Sandbox Code Playgroud)
插入值和检索值的时间不同。原因可能是时区,如何正确设置?
我需要操作 java.sql.Timestamp。
该函数的输入为:java.sql.Timestamp 中的格式化日期时间 [可能的日期格式为:MM/dd/yyyy hh:mm:ss aa、MM/dd/yyyy hh:mm:ss、MM/dd/yyyy hh: mm aa、MM/dd/yyyy HH:mm、MM/dd/yy hh:mm aa、MM/dd/yy HH:mm、MM/dd/yyyy 以及其他一些]
所需输出:另一个时区中的 java.sql.Timestamp 格式与输入相同
所以基本上我需要更改 java.sql.Timestamp 中 DateTime 的时区
我看过其他帖子,提到使用JODA,但由于一些限制我无法使用它。
我尝试过 - 将 java.sql.Timestamp 转换为 java.date.Calendar, - 然后更改时区, - 然后将其转换为日期 - 将日期格式化为相同格式的日期时间
请参阅下面的代码:
Timestamp ts = "2012-06-20 18:22:42.0"; // I get this type of value from another function
Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.HOUR, -8);
String string = cal.getTime().toString(); // return value is in " DAY MMM dd hh:mm:ss PDT yyyy " format i.e. Wed …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用谷歌时区API.我提供经度和纬度,API给我时区.
如何使用以下值(dstOffset和rawOffset)获取当地时间?
这是Json
{
"dstOffset" : 0.0,
"rawOffset" : -28800.0,
"status" : "OK",
"timeZoneId" : "America/Los_Angeles",
"timeZoneName" : "Pacific Standard Time"
}
Run Code Online (Sandbox Code Playgroud)
我试过这个javascript函数,但我没有得到正确的时间.
function calcTime(offset) {
var d = new Date();
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
var nd = new Date(utc + (3600000*offset));
alert("The local time is " + nd.toLocaleString());
}
calcTime(-28800.0);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 !
我正在尝试使用从DB获取的时区解析一串格式时间戳.字符串如下:
SimpleDateFormat mdyFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSZ");
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date d1 = mdyFormat.parse("2014-04-01 15:19:49.31146+05:30");
String mdx = sdf.format(d1);
System.out.println(mdx);
Run Code Online (Sandbox Code Playgroud)
问题是,我得到一个错误说:
Exception in thread "main" java.text.ParseException: Unparseable date: "2014-04-01 15:19:49.31146+05:30"
at java.text.DateFormat.parse(DateFormat.java:357)
at com.karthik.Timestampvalidate.main(Timestampvalidate.java:31)
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这一问题 ?
我正在向使用MariaDB服务的Swisscom AppCloud部署一些spring-boot应用程序.使用CloudFoundry连接器在我的应用程序中自动配置该服务,连接正常.
但是:由于我在我的Java代码中大量使用ZonedDateTime-Objects,我也包含在pom.xml中...
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
...正确保存数据库中的ZonedDateTimes.
当我添加时,这在我的本地MariaDB上工作正常
...?useLegacyDatetimeCode=false
Run Code Online (Sandbox Code Playgroud)
...到连接字符串(如下所述:https://moelholm.com/2016/11/09/spring-boot-controlling-timezones-with-hibernate/ - >"BONUS提示:让Hibernate配置工作与MariaDB/MySQL").
如何将此标志(也可能是其他标志)添加到Swisscom AppCloud上与MariaDB服务的连接?
这个 SQL:
select to_timestamp(extract(epoch from '0001-01-01 00:00:00'::timestamp))
Run Code Online (Sandbox Code Playgroud)
产生这个输出:
0001-01-01 08:06:00+08:06
我意识到to_timestamp()总是添加一个时区,因此额外的 8 小时和+8时区部分。但什么是:06?额外的 6 分钟从哪里来?
编辑
如果我最初执行,set local timezone to 'UTC';那么我会得到预期的结果。
postgresql timestamp timezone-offset timestamp-with-timezone postgresql-9.6
我有一个像这样的轻量级图表设置。我想添加某种配置,以便图表可以向我显示本地时间,而不是通过 Unix 时间戳传递的通用时间,例如,它与我的时间相差几个小时。另一种可能性是修改 Unix 时间戳。
var chart = LightweightCharts.createChart(document.getElementById("charts"), {
width: 1060,
height: 537,
layout: {
backgroundColor: "#161616",
textColor: "rgba(255, 255, 255, 0.9)",
fontSize: 15,
fontFamily: "Ubuntu",
},
grid: {
vertLines: {
color: "#424242",
width: 0.3,
},
horzLines: {
color: "#424242",
width: 0.3,
},
},
crosshair: {
mode: LightweightCharts.CrosshairMode.Normal,
},
priceScale: {
borderColor: "rgba(197, 203, 206, 0.8)",
size: 5,
},
timeScale: {
borderColor: "rgba(197, 203, 206, 0.8)",
timeVisible: true,
secondsVisible: false,
rightBarStaysOnScroll: true,
},
});
Run Code Online (Sandbox Code Playgroud) javascript charts timestamp-with-timezone lightweight-charts
timestamp ×3
timezone ×3
datetime ×2
java ×2
javascript ×2
api ×1
cassandra ×1
charts ×1
mariadb ×1
php ×1
postgresql ×1
r ×1
spring-boot ×1
swisscomdev ×1
unix ×1