如果目标地区没有使用夏令时,可以日期或时间戳直接减去小时差,也可以使用下面兼容夏令时的方法。

概念:

        时间戳 :从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。是不会随着时区夏令时的改变而改变。(除非你离开地球光速行驶)

        时区 : 由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。正式的时区划分包括24个时区

        夏令时 :一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。全世界有近110个国家每年要实行夏令时。

  • 服务器产生的时间戳是不受时区和夏令时影响的,不管是从日期转换还是其他途径获取的,但是转回夏令时日期格式需要函数支持。
  • 从当地的夏令时年月日格式转换的时间戳是否会收夏令时影响,取决于转换函数。

方法

  • 将目标日期转换为时间戳。
  • 将时间戳用新的时区转换回时间,这里需要设置时区名字不然不能自动调整夏令时。
times=$(TZ=Asia/Shanghai date -d @`date +%s` "+%Y-%m-%d %H:%M:%S")
echo $times

注意 :某些国外的服务器可能没有定义Asia/Shanghai时区,不会报错但结果不正确;此时要把上海改成Asia/Hong_Kong

将不同时区时间转换为上海时区的脚本:

#!/bin/sh
#
# Print the specified (or current) time from base time in other time zones
# and the converse
## Base time zone from/to which to convert
TZBASE=Asia/Shanghai# Time zones to display
# See /usr/share/zoneinfo/ for more names
TZONES='UTC America/Los_Angeles America/New_York Europe/London Europe/Paris'# Display format
FORMAT='%H:%M (%p) %Z %a %m %b %Y'if [ "$1" ] ; thentime="$1"
elsetime=`date +%T`
fi# Show the time from the specified input time zone in the specified output
# time zone
showtime()
{TZIN=$1TZOUT=$2TZ=$TZOUT date --date='TZ="'$TZIN'"'" $time" +"$time $TZIN is $TZOUT $FORMAT"
}for tz in $TZONES ; doshowtime $TZBASE $tz
doneecho

Linux shell不同时区时间转换(时区 夏令时 时间戳)相关推荐

  1. 怎么修改linux系统时区,Linux如何修改系统时间和时区

    Linux如何修改系统时间和时区方法: 修改时区: 1> 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai 用这个文件替换当前的/etc/localtime ...

  2. 用C语言将当前北京时间转换成UTC时间戳

    用C语言将当前北京时间转换成UTC时间戳 时间戳表示格式 UNIX时间戳 指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,不 ...

  3. 深度linux时区,时间和时区

    前言 一个操作系统通过如下内容确定时间:时间数值.时间标准.时区和夏令时调节(中国已经废止). 基础概念 时钟分类 Linux 时钟分为系统时钟(System Clock)和硬件(Real Time ...

  4. java不同时区时间转换,Java不同时区(timezone)之间时间转换

    最近出现一个问题是这样的 我们的系统在国外打印的日志时间由于时差关系和国内不一致 看起来不方便 希望国外的日志和国内保持一致 即 需要对不同时区的时间做转换调整 统一为国内时间. 一.关于时区的一些概 ...

  5. java 不同时区时间转换_Java对世界不同时区timezone之间时间转换的处理方法

    最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...

  6. 软件设置linux时区,Linux设置和修改时间与时区

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 原文链接:https://blog.csdn.net/m0_37886429/article/ ...

  7. 时间戳与时间转换、js时间戳判定是 今天、昨天还是更前的日子

    //1. js时间戳判定是否是 -1 今天 0 昨天 1更前的日子 console.log(_GetDateStr(1572431608)) //2019-10-30 18:40:04 functio ...

  8. java不同时区时间转换,Java在不同时区转换时间

    本文中,我们将展示如何在不同时区之间转换时间,我们分别使用Date.Calendar.Joda Time. 本例从新加坡时区 (GMT+8:00) Asia/Singapore - Singapore ...

  9. js时区时间转换格式:h5内转换含有T字母的8小时时区时间格式

    1.后台传过来的数据含有时区日期,该日期为浏览器识别日期,此时进行日期格式的转换,如采用getFullYears()等方法后,手机微信打开的h5界面则显示为NAN,非法日期格式,此时应采用如下方法转换 ...

最新文章

  1. 《几何与代数导引》习题1.38
  2. 实现一个简易的RPC
  3. MOSS中对列表的一些操作(创建,查询等)
  4. java 线程 cpu_java程序中线程cpu使用率计算
  5. 游戏测试:如何有效地报告 Bug?
  6. Java当中迭代器的使用(遍历容器ArrayList, HashSet,HashMap)
  7. Java异常处理(1)--异常概述与异常体系结构
  8. Android 驱动(9)----设备树(一)linux内核主线了解dts
  9. 格式化输出,while循环,运算符,初识编码
  10. CentOS6.6下搭建vsftpd+PAM认证
  11. BUUCTF-Reverse-相册
  12. linux电路图软件有哪些,新手福利,推荐一款好用的电路图绘制软件!
  13. centos7下安装yasm过程
  14. 【二十六】redis之事务、事务特性、与pipeline比较,与Lua脚本比较
  15. 电脑网线连接无线路由扩展设置
  16. torch-sparse安装教程
  17. DEMO:ALV显示明细
  18. 联想服务器维修口的ip地址,联想路由器192.168.1.1打不开的解决办法
  19. Docker容器实现跨主机间通讯
  20. SCI影响因子及自然科学基金查询(MedSci)

热门文章

  1. 中小城市数字化转型模式及实践
  2. 【解题报告】博弈专场(CF2200~2400)后五题
  3. 最新智商测试html5,超准《IQ测试》,在线《智商测试》
  4. 已解决:u盘文件被病毒设置隐藏后,只能看到病毒生成的同名exe文件
  5. 教你怎么将手机转变成音箱
  6. 俄罗斯研究人员表示可访问全球所有小米宠物喂食器
  7. ESP8266学习之路 十三 (SPI读取max6675)
  8. 利用数字电位器简化LCD面板的VCOM调节
  9. centos7 挂载fat32格式的u盘和ntfs格式的移动硬盘
  10. TansorFlow和Keras的入门教程