针对将UNIX时间戳更改为其他时区和unix时间戳转换成时间命令这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展android:日期转Unix时间戳,Unix时间戳转日期,带时区、datet
针对将UNIX时间戳更改为其他时区和unix时间戳转换成时间命令这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展android: 日期转Unix时间戳,Unix时间戳转日期,带时区、datetime – 将unix时间戳转换为julian、Drupal 7 – 如何将unix时间戳插入数据库、element+vue:将Unix时间戳转化标准格式等相关知识,希望可以帮助到你。
本文目录一览:- 将UNIX时间戳更改为其他时区(unix时间戳转换成时间命令)
- android: 日期转Unix时间戳,Unix时间戳转日期,带时区
- datetime – 将unix时间戳转换为julian
- Drupal 7 – 如何将unix时间戳插入数据库
- element+vue:将Unix时间戳转化标准格式
将UNIX时间戳更改为其他时区(unix时间戳转换成时间命令)
我从Python程序中的Web服务检索Unix时间戳。该时间戳是美国时区。为了将它与其他在法国本地化的对象一起插入MySQL数据库中,我想将此时间戳转换为法国时区。
我可以用数学函数来做到这一点,但是存在夏令时的问题。我更喜欢使用Python时间和日期特定的函数来处理这些概念。
您有提示吗,我迷失了Python文档?
答案1
小编典典过去,当我们从服务提供商处下载文件的时间戳具有与PST时区相对应的时间戳时,我遇到了类似的问题。以下内容帮助我完成了转换:
import pytz, datetime, timeimport osoriginalTimeStamp = os.stat("/tmp/file-from-us-west-coast").st_mtime# prints e.g. 2010-03-31 13:01:18print "original:",datetime.datetime.fromtimestamp(originalTimeStamp)# re-interpret originalTimeZone = "America/Los_Angeles"targetTimeZone = "Europe/Paris"newTimeStamp = pytz.timezone(originalTimeZone).localize(datetime.datetime.fromtimestamp(originalTimeStamp)).astimezone(pytz.timezone(targetTimeZone))# prints e.g. 2010-03-31 22:01:18+02:00print "new: ",newTimeStamp# convert back to seconds since epochnewTimeStamp = time.mktime(newTimeStamp.timetuple())# print time difference in hoursprint (newTimeStamp - originalTimeStamp) / 3600.0
android: 日期转Unix时间戳,Unix时间戳转日期,带时区
1、UTC时间&GMT时间
UTC时间是时间标准时间(Universal Time Coordinated),UTC是根据原子钟来计算时间,误差非常小。
UTC也是指零时区的时间,如果要表示其他时区的时间,这里要注意没有UTC+0800或者UTC+8这样的表示方式(至少Java里面没有,一般用于口头表示),只有Asia/Shanghai这样的表示方式,详细的时区列表参考这个文档时区列表。
GMT时间是根据地球的自转和公转来计算时间,老的时间计量标准,这里我们不过多讨论
2、表达时间方式
我们一般表示时间都会带格式以方便理解,例如时间表达式是''2018-09-12 08:00:00'',因为我们在东八区,所以默认是:北京时间2018年9月12号8点整。但是如果是一个美国人看到这个时间,就会认为是美国东部or西部时间的2018年9月12号8点整。所以从这种表达方式很不准确,因为没有指明到底是哪个时区的时间!!!!
所以准确的表达时间必须带有时区,例如2018-09-12 08:00:00+0800,表达了Asia/Shanghai这个时区的时间2018年9月12号8点整。这里要注意+0800并不是表示加8小时的意思,只是表示这个时间''2018-09-12 08:00:00''是东八区Asia/Shanghai的时间,仅此而已。
3、UTC时间的时间戳
讲清楚了时间表达方式,再讲时间戳。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。也就是在''1970-01-1 00:00:00+0000'' 或 ''1970-01-1 08:00:00+0800''这个时间点,时间戳是0。这也是Java里时间组件的默认方式,不管用户输入的人类可识别的时间是什么格式,在内部统一存的是时间戳。
例如时间是''2018-09-01 08:00:00+0800'',那么使用date.getTime()获取到时间戳是1535760000000;时间是''2018-09-01 00:00:00+0000'',获取到时间戳也是1535760000000。
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ", Locale.getDefault());
Log.i("xp.chen", sdf.parse("2018-09-01 08:00:00+0800").getTime()+"");
Log.i("xp.chen", sdf.parse("2018-09-01 00:00:00+0000").getTime()+"");
Log.i("xp.chen", sdf.parse("1970-01-01 00:00:00+0000").getTime()+"");
} catch (ParseException e) {
e.printStackTrace();
}
运行结果:
2019-05-08 16:09:10.935 21352-21352/? I/xp.chen: 1535760000000
2019-05-08 16:09:10.935 21352-21352/? I/xp.chen: 1535760000000
2019-05-08 16:09:10.935 21352-21352/? I/xp.chen: 0
4、时间戳与日期之前的相互转换
【时间戳转日期】
long curTime = 1535760000000L;
String timeStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault()).format(new Date(curTime));
Log.i("xp.chen", "timeStr: "+timeStr);
运行结果:
2019-05-08 16:14:58.573 22835-22835/? I/xp.chen: timeStr: 2018-09-01 08:00:00 +0800
【日期转时间戳】
try {
String src_dateStr = "2018-09-01 08:00:00 +0800";
Calendar calendar = Calendar.getInstance();
calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault()).parse(src_dateStr));
long timeInMillis = calendar.getTimeInMillis();
Log.i("xp.chen", "timeInMillis: "+timeInMillis);
} catch (ParseException e) {
e.printStackTrace();
}
运行结果:
2019-05-08 16:14:58.573 22835-22835/? I/xp.chen: timeInMillis: 1535760000000
【获得当前日期字符串含时区】
public static String getDateStrIncludeTimeZone() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault());
return sdf.format(new Date());
}
datetime – 将unix时间戳转换为julian
我发现一个网站(http://aa.usno.navy.mil/data/docs/JulianDate.php)执行类似的计算,但是我需要以编程方式进行.
解决方案可以是C/C++,python,perl,bash等…
所以,在伪代码中:
function float getJulianFromUnix( int unixSecs ) { return ( unixSecs / 86400.0 ) + 2440587.5; }
Drupal 7 – 如何将unix时间戳插入数据库
format_date(strtotime('Now'),'custom','YYYY-MM-DD 00:00:00'); format_date(time(),'YYYY-MM-DD HH:MM:SS'); format_date(mktime(),'YYYY-MM-DD HH:MM:SS');
解决方法
另外,如果要在数据库中插入当前时间戳,可以使用默认选项CURRENT_TIMESTAMP在数据库中创建字段作为TIMESTAMP,或者甚至直接在sql中创建my_time_stamp_field = Now().
另外……如果您有自定义日期,可以使用mktime()http://www.php.net/manual/en/function.mktime.php
unix时间戳是一个int值,在你的例子中你想要一个格式化的日期时间,如果这是案例使用日期(‘YYYY-MM-DD HH:MM:SS’,时间()/ unix时间戳/).
希望能帮助到你.
element+vue:将Unix时间戳转化标准格式
最近在做一个vue和element的项目,但是后台传过来的时间为时间戳,需要转化为标准格式,在网上搜了很多,虽然有很多关于vue时间戳的转换,但是不适用于element框架
最终找到一个可以解决的办法:
1.在methods里面添加函数
//时间戳格式化 formatDate(row) { let date = new Date(parseInt(row.createTime) * 1000); let Y = date.getFullYear() + ‘-‘; let M = date.getMonth() + 1 < 10 ? ‘0‘ + (date.getMonth() + 1) + ‘-‘ : date.getMonth() + 1 + ‘-‘; let D = date.getDate() < 10 ? ‘0‘ + date.getDate() + ‘ ‘ : date.getDate() + ‘ ‘; let h = date.getHours() < 10 ? ‘0‘ + date.getHours() + ‘:‘ : date.getHours() + ‘:‘; let m = date.getMinutes() < 10 ? ‘0‘ + date.getMinutes() + ‘:‘ : date.getMinutes() + ‘:‘; let s = date.getSeconds() < 10 ? ‘0‘ + date.getSeconds() : date.getSeconds(); return Y + M + D + h + m + s; },
2.使用formatter属性
<el-table-column prop="createTime" label="创建时间" align="center" header-align="center" :formatter="formatDate"/>
关于将UNIX时间戳更改为其他时区和unix时间戳转换成时间命令的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于android: 日期转Unix时间戳,Unix时间戳转日期,带时区、datetime – 将unix时间戳转换为julian、Drupal 7 – 如何将unix时间戳插入数据库、element+vue:将Unix时间戳转化标准格式的相关知识,请在本站寻找。
本文标签: