java实现时间戳timestamp转换

时间戳是指格林威治时间1970-01-01 00:00:00即北京时间1970-01-01 08:00:00起至现在的总秒数。

import java.text.SimpleDateFormat;
import java.util.Date;

public class TimeStamp {

	/**
	 ** 获取当前时间戳(毫秒级)
	 * 
	 * @return String 时间戳
	 */
	public String getTimestamp() {
		long temp = System.currentTimeMillis();
		String timestamp = String.valueOf(temp);
		return timestamp;
	}

	/**
	 ** 获取指定的时间对应的时间戳
	 * 
	 * @param datetime 年月日 时:分:秒
	 * @return String 时间戳
	 */
	public String getTimestamp(String datetime) {
		String timestamp = "";
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
			Date date = sdf.parse(datetime.trim());
			long temp = date.getTime();
			timestamp = String.valueOf(temp);
			if (timestamp.length() > 3) {
				timestamp = timestamp.substring(0, timestamp.length() - 3);
			}
		} catch (Exception e) {
//            e.printStackTrace();
			timestamp = "请输入正确的时间(比如 20010203 09:10:11)";
		}
		return timestamp;
	}

	/**
	 ** 获取指定的时间戳对应的时间
	 * 
	 * @param timestamp 时间戳
	 * @return String 年-月-日 时:分:秒
	 */
	public String getTime(String timestamp) {
		String datetime = "";
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			long temp = Long.valueOf(timestamp.trim());
			Date date = new Date(temp * 1000L);
			datetime = sdf.format(date);
		} catch (Exception e) {
//            e.printStackTrace();
			datetime = "请输入正确的时间戳(比如 1286755935)";
		}
		return datetime;
	}
}
关于计算机的几种时间

# GMT

即:格林尼治时间(Greenwich Mean Time)

以本初子午线为基础,精确度相对低。

注意事项:因为地球每天的自转是不规则的(正在缓慢减速),所以,格林尼治时间的精确度会越来越低。

# UTC

即:世界协调时(Universal Time Coordinated)

以原子时钟长为基础,比GMT格林尼治时更加科学更加精确。
注意事项:

1)目前UTC与GMT 相差为0.9秒,故二者可以基本视为一致。

我们一般认为GMT和UTC是一样的,都与英国伦敦的本地时相同。

2)早期的XP系统中,默认时间格式是GMT。Win7之后,默认时间格式已经改成了UTC。

# UNIX时间戳 (timestamp)

计算机中的UNIX时间戳,是以GMT/UTC时间「1970-01-01T00:00:00」为起点,到当前具体时间的秒数(不考虑闰秒)。这样做的目的,主要是通过“整数计算”来简化计算机对时间操作的复杂度。

无论何种编程语言,基本都有获取unix时间戳的系统方法。

注意事项:

1)如果开发的软件系统仅仅在国内用,用timestamp没有太大问题(因为大家的Linux服务器的时区是一样的)。

2)如果软件系统需要跨国服务,则必须用UTC(比如阿里云API),否则就会因为服务器的UTC时区不同,导致timestamp结果值混乱。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值