我们在Hive中存储了一个时间戳纪元列(BIGINT).我们希望在这个时代获得Date'yyyy-MM-dd'.问题是我的纪元是以毫秒为单位,例如1409535303522.所以选择时间戳,from_unixtime(timestamp,'yyyy-MM-dd')给出错误的日期结果,因为它预期纪元数秒.
所以我尝试将它除以1000.但是它会转换为Double,我们无法对其应用函数.当我尝试将此双精度转换为Bigint时,即使CAST也无效.
在将日期和时间插入MySQL数据库之前,我使用PHP将日期和时间转换为时间戳.
我的问题是,当我使用PHP的strtotime函数时,输出时间戳比实际时间晚-1小时.
例如,考虑今天的日期:2010年7月21日.当我使用PHP代码时:
<?php
$my_timestamp = strtotime("07/21/2010");
echo $my_timestamp;
?>
Run Code Online (Sandbox Code Playgroud)
发回的时间戳是GMT等效MINUS 1小时.即我回来了:2010年7月20日23:00:00 GMT而不是2010年7月21日00:00:00 GMT.
我住在英国所以我的时区是GMT.我已经使用date_default_timezone_set('Europe/London')在脚本中声明了我的时区,并且我还确保将php.ini文件设置为'Europe/London'.
这可能与夏令时有关吗?如何在不添加1小时的所有日期的情况下解决问题?
我需要一个方法将GregorianCalendar对象转换为Unix时间(即很长).还需要一种方法将Unix Time(long)转换回GregorianCalendar对象.有什么方法可以做到这一点吗?如果没有,那我该怎么办呢?任何帮助将受到高度赞赏.
链接到GregorianCalendar类 - > http://download.oracle.com/javase/1.4.2/docs/api/java/util/GregorianCalendar.html
谢谢.
我有以下Unix时间戳.
1301982430 1301982430 1301981474
1301981466 1301981466 1301981066
1301981058 1301981058 1301980388
1301980373 1301980373 1301979082
1301978478 1301978478 1301978478
如何将其转换回人性化的时间?
这似乎不起作用,
strtotime($item->timestamp);
Run Code Online (Sandbox Code Playgroud) 我有一个带有abc列的表,其中包含unix时间戳(例如13898161481435),我想在日期之间运行select.
做一个是没有效率的
where TO_CHAR(TO_TIMESTAMP(abc / 1000), 'DD/MM/YYYY') > '14/01/2014 00:00:00' and ..;
Run Code Online (Sandbox Code Playgroud)
这会转换每条记录.
而是做一些像
abc>('14/01/2014 00:00:00'tobigint())和abc <...
但我无法找到任何参考,但相反的情况.
我试图从时间戳字段获取unix时间,以毫秒(13位数)为单位,但目前它以秒为单位返回(10位数).
scala> var df = Seq("2017-01-18 11:00:00.000", "2017-01-18 11:00:00.123", "2017-01-18 11:00:00.882", "2017-01-18 11:00:02.432").toDF()
df: org.apache.spark.sql.DataFrame = [value: string]
scala> df = df.selectExpr("value timeString", "cast(value as timestamp) time")
df: org.apache.spark.sql.DataFrame = [timeString: string, time: timestamp]
scala> df = df.withColumn("unix_time", unix_timestamp(df("time")))
df: org.apache.spark.sql.DataFrame = [timeString: string, time: timestamp ... 1 more field]
scala> df.take(4)
res63: Array[org.apache.spark.sql.Row] = Array(
[2017-01-18 11:00:00.000,2017-01-18 11:00:00.0,1484758800],
[2017-01-18 11:00:00.123,2017-01-18 11:00:00.123,1484758800],
[2017-01-18 11:00:00.882,2017-01-18 11:00:00.882,1484758800],
[2017-01-18 11:00:02.432,2017-01-18 11:00:02.432,1484758802])
Run Code Online (Sandbox Code Playgroud)
即使2017-01-18 11:00:00.123并且2017-01-18 11:00:00.000不同,我也会得到相同的unix时间1484758800
我错过了什么?
我有一台运行的服务器TZ=UTC,我有这样的代码:
time_t t = time(NULL);
struct tm tm;
gmtime_r(&t, &tm);
Run Code Online (Sandbox Code Playgroud)
问题是tm.tm_sec == 60服务器何时处于闰秒之内?
例如,如果我在以下时间范围内:
1998-12-31T23:59:60.00 - 915 148 800.00
1998-12-31T23:59:60.25 - 915 148 800.25
1998-12-31T23:59:60.50 - 915 148 800.50
1998-12-31T23:59:60.75 - 915 148 800.75
1999-01-01T00:00:00.00 - 915 148 800.00
Run Code Online (Sandbox Code Playgroud)
就gmtime()返回tm == 1998-12-31T23:59:60了time_t = 915148800,一旦出了闰秒,回归tm == 1999-01-01T00:00:00为同time_t?
我想弄清楚如何在反应应用程序中显示 firestore 时间戳。
我有一个名为 createdAt 的字段的 firestore 文档。
我试图将它包含在输出列表中(在此处提取相关位,以便您不必通读整个字段列表)。
componentDidMount() {
this.setState({ loading: true });
this.unsubscribe = this.props.firebase
.users()
.onSnapshot(snapshot => {
let users = [];
snapshot.forEach(doc =>
users.push({ ...doc.data(), uid: doc.id }),
);
this.setState({
users,
loading: false,
});
});
}
componentWillUnmount() {
this.unsubscribe();
}
render() {
const { users, loading } = this.state;
return (
<div>
{loading && <div>Loading ...</div>}
{users.map(user => (
<Paragraph key={user.uid}>
<key={user.uid}>
{user.email}
{user.name}
{user.createdAt.toDate()}
{user.createdAt.toDate}
{user.createdAt.toDate()).toDateString()}
Run Code Online (Sandbox Code Playgroud)
唯一不会呈现的属性是日期。
上述每一次尝试都会产生一个错误,说明:
类型错误:无法读取未定义的属性“toDate”
javascript unix-timestamp firebase reactjs google-cloud-firestore
我需要从本地时间ut UTC转换现有(日期时间字段)数据库.
这些值将广告日期时间存储在服务器上,时区为CET(+1)(夏令时+2).选择我使用的数据时UNIX_TIMESTAMP(),它会神奇地补偿所有内容,即时区转移和dst(如果我已经正确阅读了文档).
我正在将数据库移动到以UTC为系统时间的新服务器.
简单地减去-1 H将不起作用,因为夏季时间为+2.
有什么想法聪明地做到这一点?(使用sql或一些脚本lang)
我正在尝试以下列格式输出我的代码:
january 2012 - 34
february 2012 - 23
Run Code Online (Sandbox Code Playgroud)
其中34和23将是该月内具有id_dealership为7的总行数.我需要此输出所有已完成作业的月份的所有数据.
该assignments表结构如下:
id_dealer (int)
date_assigned (int)
Run Code Online (Sandbox Code Playgroud)
我试过了,但它根本不起作用:
SELECT MONTH(date_assigned), YEAR(date_assigned), COUNT(*)
FROM assignments
GROUP BY MONTH(date_assigned), YEAR(date_assigned)
Run Code Online (Sandbox Code Playgroud) unix-timestamp ×10
mysql ×3
php ×2
time ×2
utc ×2
apache-spark ×1
c ×1
count ×1
date ×1
epoch ×1
firebase ×1
hive ×1
java ×1
javascript ×1
methods ×1
milliseconds ×1
posix ×1
postgresql ×1
reactjs ×1
select ×1
strtotime ×1
timestamp ×1
timezone ×1