Android kotlin 时间戳转换工具

  • 代码
  • 完事

代码


import android.annotation.SuppressLint
import java.text.SimpleDateFormat
import java.util.*/*** 时间工具** @author D10NG* @date on 2019-10-08 11:28*//*** 获取当前系统时间戳,单位毫秒*/
val curTime: Longget() = System.currentTimeMillis()/*** 获取当前年份*/
val curYear: Intget() = curTime.getDateYear()/*** 获取当前月份*/
val curMonth: Intget() = curTime.getDateMonth()/*** 获取当前日*/
val curDay: Intget() = curTime.getDateDay()/*** 获取当前小时*/
val curHour: Intget() = curTime.getDateHour()/*** 获取当前分钟*/
val curMinute: Intget() = curTime.getDateMinute()/*** 获取当前秒钟*/
val curSecond: Intget() = curTime.getDateSecond()/*** 获取时间戳中的年份* @return [Int] 年份*/
fun Long.getDateYear(): Int {val calendar = Calendar.getInstance()calendar.timeInMillis = thisreturn calendar.get(Calendar.YEAR)
}/*** 获取时间戳中的月份* @return [Int] 月份*/
fun Long.getDateMonth(): Int {val calendar = Calendar.getInstance()calendar.timeInMillis = thisreturn calendar.get(Calendar.MONTH) + 1
}/*** 获取时间戳中的日* @return [Int] 日*/
fun Long.getDateDay(): Int {val calendar = Calendar.getInstance()calendar.timeInMillis = thisreturn calendar.get(Calendar.DAY_OF_MONTH)
}/*** 获取时间戳中的小时 24小时* @return [Int] 小时*/
fun Long.getDateHour(): Int {val calendar = Calendar.getInstance()calendar.timeInMillis = thisreturn calendar.get(Calendar.HOUR_OF_DAY)
}/*** 获取时间戳中的分钟* @return [Int] 分钟*/
fun Long.getDateMinute(): Int {val calendar = Calendar.getInstance()calendar.timeInMillis = thisreturn calendar.get(Calendar.MINUTE)
}/*** 获取时间戳中的秒钟* @return [Int] 秒钟*/
fun Long.getDateSecond(): Int {val calendar = Calendar.getInstance()calendar.timeInMillis = thisreturn calendar.get(Calendar.SECOND)
}/*** 时间戳转换成字符窜* @param pattern 时间样式 yyyy-MM-dd HH:mm:ss* @return [String] 时间字符串*/
@SuppressLint("SimpleDateFormat")
fun Long.toDateStr(pattern: String = "yyyy-MM-dd HH:mm:ss"): String {val date = Date(this)val format = SimpleDateFormat(pattern)return format.format(date)
}/*** 将字符串转为时间戳* @param pattern 时间样式 yyyy-MM-dd HH:mm:ss* @return [String] 时间字符串*/
fun String.toDateLong(pattern: String = "yyyy-MM-dd HH:mm:ss"): Long {@SuppressLint("SimpleDateFormat")val dateFormat = SimpleDateFormat(pattern)var date: Date? = Date()try {date = dateFormat.parse(this)} catch (e: Exception) {e.printStackTrace()}return date?.time ?: 0
}/*** 根据年月日获取时间戳* @param year 年* @param month 月* @param day 日* @return [Long] 时间戳*/
fun getDateFromYMD(year: Int = curYear, month: Int = curMonth, day: Int = curDay): Long {return getDateFromYMDHMS(year, month, day, 0, 0, 0)
}/*** 根据年月日时分秒获取时间戳* @param year Int 年* @param month Int 月* @param day Int 日* @param hour Int 时* @param minute Int 分* @param second Int 秒* @return [Long] 时间戳*/
fun getDateFromYMDHMS(year: Int = curYear,month: Int = curMonth,day: Int = curDay,hour: Int = curHour,minute: Int = curMinute,second: Int = curSecond
): Long {val calendar = Calendar.getInstance()calendar.set(year, month -1, day, hour, minute, second)calendar.set(Calendar.MILLISECOND, 0)return calendar.timeInMillis
}/*** 获取第n天的时间戳* @param offset n* @return [Long] 时间戳*/
fun getNextDate(offset: Int): Long {val calendar = Calendar.getInstance()calendar.time = Date(getDateFromYMD(curYear, curMonth , curDay))calendar.add(Calendar.DAY_OF_MONTH, offset)return calendar.timeInMillis
}/*** 获取某个日子为标点的附近的日子时间戳* @receiver Long* @param offset Int* @return Long*/
fun Long.getNextDay(offset: Int): Long {val calendar = Calendar.getInstance()calendar.time = Date(this)calendar.add(Calendar.DAY_OF_MONTH, offset)return calendar.timeInMillis
}/*** 获取指定月份的天数* @param year 年* @param month 月* @return [Int] 天数*/
@SuppressLint("SimpleDateFormat")
fun getDaysOfMonth(year: Int, month: Int): Int {val calendar = Calendar.getInstance()calendar.set(Calendar.YEAR, year)calendar.set(Calendar.MONTH, month -1)return calendar.getActualMaximum(Calendar.DAY_OF_MONTH)
}/*** 获取今天星期几* @return [Int] [Calendar.SUNDAY]*/
fun getCurWeek(): Int {return curTime.getDateWeek()
}/*** 获取时间戳是星期几* @return [Int] [Calendar.SUNDAY]*/
fun Long.getDateWeek(): Int {val calendar = Calendar.getInstance()calendar.time = Date(this)return calendar.get(Calendar.DAY_OF_WEEK)
}/*** 时间戳是否为今天的* @receiver Long* @return Boolean*/
fun Long.isToday(): Boolean {return getDateYear() == curYear && getDateMonth() == curMonth && getDateDay() == curDay
}/*** 时间戳是否为昨天的* @receiver Long* @return Boolean*/
fun Long.isYesterday(): Boolean {val yesterday = curTime.getNextDay(-1)return getDateYear() == yesterday.getDateYear() && getDateMonth() == yesterday.getDateMonth() && getDateDay() == yesterday.getDateDay()
}/*** 本地时间转化为UTC时间* @receiver Long* @return Long*/
fun Long.toUTCDate(): Long {val calendar = Calendar.getInstance().apply {timeInMillis = this@toUTCDate}val zoneOffset = calendar.get(Calendar.ZONE_OFFSET)val dstOffset = calendar.get(Calendar.DST_OFFSET)calendar.add(Calendar.MILLISECOND, - (zoneOffset + dstOffset))return calendar.timeInMillis
}/*** UTC时间转化为本地时间* @receiver Long* @return Long*/
@SuppressLint("SimpleDateFormat")
fun Long.toLocalDate(): Long {val pattern = "yyyyMMddHHmmssSSS"val utcSdf = SimpleDateFormat(pattern).apply {timeZone = TimeZone.getTimeZone("UTC")}val utcD = utcSdf.parse(this.toDateStr(pattern))?: return 0Lval localSdf = SimpleDateFormat(pattern).apply {timeZone = TimeZone.getDefault()}val localStr = localSdf.format(utcD.time)return localStr.toDateLong(pattern)
}/*** UTC时间转化为指定timeZone时间* @receiver Long* @param timeZoneInt Int* @return Long*/
@SuppressLint("SimpleDateFormat")
fun Long.toCustomDate(timeZoneInt: Int): Long {val pattern = "yyyyMMddHHmmssSSS"val utcSdf = SimpleDateFormat(pattern).apply {timeZone = TimeZone.getTimeZone("UTC")}val utcD = utcSdf.parse(this.toDateStr(pattern))?: return 0Lval localSdf = SimpleDateFormat(pattern).apply {timeZone = TimeZone.getTimeZone("GMT" + (if (timeZoneInt >= 0) "+" else "") + timeZoneInt)}val localStr = localSdf.format(utcD.time)return localStr.toDateLong(pattern)
}

完事

Android kotlin 时间戳转换工具相关推荐

  1. android 字体像素转换工具类_Android中px与dip,sp与dip等的转换工具类

    Android中px与dip,sp与dip等的转换工具类 功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方 ...

  2. android 字体像素转换工具类_android px,dp,sp大小转换工具

    package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类 * * float s ...

  3. 获取当前时间戳-在线时间戳转换工具

    常用语言获取当前时间戳 Swift NSDate().timeIntervalSince1970 Go import ("time")int32(time.Now().Unix() ...

  4. 时间戳转换工具java_时间戳转换_时间戳转换工具_时间戳转换成时间日期_55查询...

    时间戳转换工具支持的时间格式 2021-03-02 2021年03月02日 2021-03-02 07:29:08 2021年03月02日 07:29:08 2021年03月02日 07点29分08秒 ...

  5. mysql时间和时间戳转换工具_时间戳转换工具

    时间戳转换工具支持的时间格式 2021-02-03 2021年2月03日 2021-02-03 09:18:17 2021年2月03日 09:18:17 2021年2月03日 09点18分17秒 只输 ...

  6. Android大小单位转换工具类

    package com.utouu.im.util; /**  * Android大小单位转换工具类  *   *   */ public class DisplayUtil { /** * 将px值 ...

  7. android 字体像素转换工具类_Android开发之拼音转换工具类PinyinUtils示例

    本文实例讲述了Android开发之拼音转换工具类PinyinUtils.分享给大家供大家参考,具体如下: 1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 或者点击此处本站下 ...

  8. java 微信时间戳转换工具_微信小程序实现时间戳格式转换

    有时候我们会遇到,后台返回的时间是时间戳的形式,需要进行格式转换,如下: 两种形式: 1.封装好的 js,外部引入. 2.在需要的 js 文件中,封装单独函数. 一.封装好的 js,外部引入. 1.如 ...

  9. mysql 13位时间戳转时间戳_时间戳换算(13位时间戳转换工具 在线)

    以前遇到过一个关于时间戳的问题,为了不被大家鄙视,先说一下概念. 具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:"时间戳是自 1970 年 1 月 1 日(. 本来下午能解答的.. ...

  10. android mp3 wav转换工具,音频提取转换工具app

    音频提取转换工具app是一款简单实用的安卓音频提取软件,支持专业音频处理,一键搞定,提供视频中提取音频,音频一键转换格式,剪辑音频内容,调整,合并等,功能齐全,免费使用,需要的可以下载音频提取转换工具 ...

最新文章

  1. asp php 语法区别,asp与php语法对比
  2. oralce 表空间解锁
  3. ajax查询返回字符串,从CFC返回结果之前,对AJAX查询执行字符串函数
  4. 9.kotlin安卓实践课程-用kotlin写第一个fragment的recyclerView的adapter具体实现
  5. C++和Java中成员数据名和成员函数名的冲突问题
  6. 他读博期间连发3篇Science,28岁任武大教授后再发Nature!
  7. 千万条数据,Stack Overflow是如何实现快速分页的
  8. 数据科学包11-数据可视化
  9. CocoaPods 简易教程 Alamofire请求数据 Swift
  10. 服务器位置不可用,服务器的MSDTC不可用解决办法
  11. ArcGIS导出地图后部分图例不显示
  12. Kali 2020.4下载安装详细教程
  13. FDDB人脸库评价人脸检测模型超详细步骤
  14. 130个实用网站集合
  15. Android APP启动其他APP(一个APP拉起(跳转到)另一个APP)
  16. Excel怎么快速提取出网址
  17. 关于使用梆梆加固后,适配android5.0系统与64位机型的问题
  18. 集成学习(ensemble learning)干货系列(3)——Boosting方法详解
  19. linux wps 文件关联,WPS文件扩展名 - 什么是.wps以及如何打开? - ReviverSoft
  20. 每日格言积累及总结——更新中

热门文章

  1. xamp安装及环境配置教程
  2. 在wamp 或者xamp 下测试多个独立的网页文件
  3. 安卓系统Remix_OS 的vmware虚拟机安装
  4. bat获取管理员权限运行
  5. Linux普通用户su root权限的开启和禁止
  6. 基于PG与PostGIS搭建实时矢量瓦片服务
  7. angular directive详解
  8. vue图片时间轴滑动_Vue之时间轴组件
  9. Windows Server 2012 磁盘管理
  10. 什么是路由器的光模块-华为路由器