java gmt utc_2019-10-03 UTC、GMT时区转换工具

202696e6e64228c262244c550f741d34.png

package com.cc.base.utils

import java.text.SimpleDateFormat

import java.util.*

import kotlin.math.max

import kotlin.math.min

/**

* Description:时区转换工具

* UTC(Universal Time/Temps Cordonné 世界标准时间)

* GMT(Greenwich Mean Time,格林威治标准时间)

* CST各个翻译版本:

* 美国中部时间:Central Standard Time (USA) UT-6:00

* 澳大利亚中部时间:Central Standard Time (Australia) UT+9:30

* 中国标准时间:China Standard Time UT+8:00

* 古巴标准时间:Cuba Standard Time UT-4:00

* @author: caiyoufei

* @date: 2019/10/3 18:20

*/

class TimeUtils private constructor() {

private object SingletonHolder {

val holder = TimeUtils()

}

companion object {

val instance = SingletonHolder.holder

}

//UTC时间格式

private val UTC_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

//本地时间格式

private val LOCAL_FORMAT = "yyyy-MM-dd HH:mm:ss"

//当地时间 ---> UTC时间

fun local2UTC(time: Long? = null): String {

val sdf = SimpleDateFormat(UTC_FORMAT, Locale.getDefault())

sdf.timeZone = TimeZone.getTimeZone("UTC")

return sdf.format(if (time == null) Date() else Date(time))

}

/**

* UTC时间 ---> 当地时间

* 如:2019-07-24T06:57:06.548Z ---> 2019-07-24 14:57:06

* @param utcTime UTC时间

*/

fun utc2Local(

utcTime: String,

offSet: Int? = null//当前时区偏移,如:北京+8,纽约-5,默认为手机自带时区

): String {

val utcFormatter = SimpleDateFormat(UTC_FORMAT, Locale.getDefault())//UTC时间格式

utcFormatter.timeZone = TimeZone.getTimeZone("UTC")

try {

val utcDate = utcFormatter.parse(utcTime)

val localFormatter = SimpleDateFormat(LOCAL_FORMAT, Locale.getDefault())//当地时间格式

if (offSet != null && offSet >= 0) {

localFormatter.timeZone = TimeZone.getTimeZone("GMT+${min(offSet, 11)}")

} else if (offSet != null && offSet < 0) {

localFormatter.timeZone = TimeZone.getTimeZone("GMT${max(-11, offSet)}")

} else {

localFormatter.timeZone = TimeZone.getDefault()

}

return localFormatter.format(utcDate.time)

} catch (e: Exception) {

e.printStackTrace()

}

return ""

}

}

e7650c6904a7e4e65306b3d3356d0a8d.png

著作权归作者所有,转载或内容合作请联系作者

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-128316-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值