时间、时区、时间戳

最近遇到转换时间戳的需求,本篇记录时间、时区、时间戳等概念,并提供一个初级的换算工具类。

时间戳是一个很神奇的东西,地球上任何一个位置,此时此刻,时间戳都是一致的,然而时间就不一样了,东八区早上九点的时候,伦敦0区是当天凌晨一点,在跨越了日期线的时区,连日期都会不一致。而我们的项目提供给全球客户,因此,使用时间戳就很有必要了。

Unix时间戳,长度是10位数字。但是在安卓里获取到的当前时间戳会有13位,用时间戳来设置当前时间的时候也需要是13位。

(安卓有一个设置系统时间的方法,代码如下,传一个13位的时间戳进去)

1
SystemClock.setCurrentTimeMillis(timestamp);

代码

转换的工具类代码如下。是写给安卓测试的,但其实用的都是标准Java接口。

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
package com.point.pointutils;

import java.text.DateForm 大专栏  时间、时区、时间戳at;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import java.util.TimeZone;

/** * Created by Point on 2019/1/7. */

public class TimeUtils {

/**	 * 获取当前系统显示的时间,格式为 2019-01-07 14:00:00	 * @return 当前系统显示的时间	 */	public static String getLocalTime(){		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());		return format.format(new Date());	}

/**	 * 获取当前系统设置的时区	 * @return	 */	public static String getTimeZone(){		return TimeZone.getDefault().getID();	}

/**	 * 将指定时区的指定时间转换为Unix时间戳	 * @param time 待转换的时间	 * @param timezone 待转换的时间的时区	 * @return Unix时间戳	 */	public static String getTimeStamp(String time, String timezone){		String timestamp = "";		DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		format.setTimeZone(TimeZone.getTimeZone(timezone));		try {			Date date = format.parse(time);			timestamp = format.format(date);		} catch (ParseException e) {			e.printStackTrace();		}		return timestamp;	}

/**	 * 将指定时间戳转换成指定时区的时间	 * @param timestamp 待转换的时间戳,10位数字	 * @param timezone 指定时区的ZoneID,可用TimeZone.getAvailableIDs()查询,建议使用本机时区	 * @return 转换后的时间	 */	public static String getTime(String timestamp, String timezone){		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		format.setTimeZone(TimeZone.getTimeZone(timezone));		return format.format(new Date(Long.parseLong(timestamp)*1000));	}

}

原文地址:https://www.cnblogs.com/liuzhongrong/p/12000090.html

时间: 2024-11-11 19:19:58

时间、时区、时间戳的相关文章

PHP获取当前时间、时间戳的各种格式写法汇总

今天写下php中,如何通过各种方法 获取当前系统时间.时间戳,并备注各种格式的含义,可灵活变通.1.获取当前时间方法date()很简单,这就是获取时间的方法,格式为:date($format, $timestamp),format为格式.timestamp为时间戳–可填参数.2.获取时间戳方法time().strtotime()这两个方法,都可以获取php中unix时间戳,time()为直接获取得到,strtotime($time, $now)为将时间格式转为时间戳,$time为必填.清楚了这个

python 时间和时间戳的转化

时间戳与时间之间的转换,需要一个中间过程,即将先将时间或时间戳先转为时间元组! 1.时间转时间戳: import datetime, time s = datetime.datetime(2016,6,22) time.mktime(s.timetuple()) # 1466524800.0 2.时间戳转时间: timeTuple = time.localtime(1466524800.0) time.strftime('%Y-%m-%d', timeTuple) # '2016-06-22'

Linux时间时区详解与常用时间函数

时间与时区 整个地球分为二十四时区,每个时区都有自己的本地时间. Ø  UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT = UTC),格林威治时间和UTC时间都用秒数来计算的. Ø  UTC时间与本地时间 UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800 UTC + (+0800) = 本地(北京)时间 Ø  UTC与Unix时间戳 在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的.

PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]

原文:PHP获取当前时间.时间戳的各种格式写法汇总[日期时间] 今天写下php中,如何通过各种方法 获取当前系统时间.时间戳,并备注各种格式的含义,可灵活变通. 1.获取当前时间方法date() 很简单,这就是获取时间的方法,格式为:date($format, $timestamp),format为格式.timestamp为时间戳--可填参数. 2.获取时间戳方法time().strtotime() 这两个方法,都可以获取php中unix时间戳,time()为直接获取得到,strtotime($

iOS中时间与时间戳的相互转化

//获取当前系统时间的时间戳 #pragma mark - 获取当前时间的 时间戳 +(NSInteger)getNowTimestamp{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateStyle:NSDateFormatterMediumStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; [formatter se

iOS关于时间、时间戳操作

#pragma mark -获取字符串形式的时间戳 -(NSString *)getTimeStampString { //获取时间和时间戳 NSDate* timeStamp = [NSDatedateWithTimeIntervalSinceNow:0]; NSTimeInterval temp=[timeStamptimeIntervalSince1970]*1000; return [NSStringstringWithFormat:@"%.0f", temp]; } #pra

PHP中获取当前系统时间、时间戳

今天写下otime($time, $now)为将时间格式转为时间戳,$time为必填.清楚了这个,想了解更多,请继续往下看. 3. date($format)用法比如:echo date('Y-m-d') ,输出结果:2012-03-22echo  date('Y-m-d H:i:s'),输出结果:2012-03-22 23:00:00echo  date('Y-m-d', time()),输出结果:2012-03-22 23:00:00(结果同上,只是多了一个时间戳参数)(时间戳转换为日期格式

iOS 本地时间、UTC时间、时间戳等操作

//获得当前时间并且转为字符串 - (NSString *)dateTransformToTimeString { NSDate *currentDate = [NSDate date];//获得当前时间为UTC时间 2014-07-16 07:54:36 UTC (UTC时间比标准时间差8小时) //转为字符串 NSDateFormatter*df = [[NSDateFormatter alloc]init];//实例化时间格式类 [df setDateFormat:@"yyyy-MM-dd

sqlite时间戳转时间语句(时间转时间戳)实例

sqlite时间戳转时间.时间转时间戳的方法 实现代码: sqlite> SELECT datetime(1377168853, 'unixepoch', 'localtime'); +------------------------------------------------+ | datetime(1377168853, 'unixepoch', 'localtime') | +------------------------------------------------+ | 201

python——时间与时间戳之间的转换

1.将时间转换成时间戳 将如上的时间2017-09-16 11:28:54转换成时间戳 利用strptime()函数将时间转换成时间数组 利用mktime()函数将时间数组转换成时间戳 #!/usr/bin/env python # -*- coding:utf-8 -*- import time dtime= "2017-09-16 11:28:54" #转换成时间数组 timeArray = time.strptime( dtime, "%Y-%m-%d %H:%M:%S