Android kotlin 时间戳转换工具
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 时间戳转换工具相关推荐
- android 字体像素转换工具类_Android中px与dip,sp与dip等的转换工具类
Android中px与dip,sp与dip等的转换工具类 功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方 ...
- android 字体像素转换工具类_android px,dp,sp大小转换工具
package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类 * * float s ...
- 获取当前时间戳-在线时间戳转换工具
常用语言获取当前时间戳 Swift NSDate().timeIntervalSince1970 Go import ("time")int32(time.Now().Unix() ...
- 时间戳转换工具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秒 ...
- 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秒 只输 ...
- Android大小单位转换工具类
package com.utouu.im.util; /** * Android大小单位转换工具类 * * */ public class DisplayUtil { /** * 将px值 ...
- android 字体像素转换工具类_Android开发之拼音转换工具类PinyinUtils示例
本文实例讲述了Android开发之拼音转换工具类PinyinUtils.分享给大家供大家参考,具体如下: 1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 或者点击此处本站下 ...
- java 微信时间戳转换工具_微信小程序实现时间戳格式转换
有时候我们会遇到,后台返回的时间是时间戳的形式,需要进行格式转换,如下: 两种形式: 1.封装好的 js,外部引入. 2.在需要的 js 文件中,封装单独函数. 一.封装好的 js,外部引入. 1.如 ...
- mysql 13位时间戳转时间戳_时间戳换算(13位时间戳转换工具 在线)
以前遇到过一个关于时间戳的问题,为了不被大家鄙视,先说一下概念. 具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:"时间戳是自 1970 年 1 月 1 日(. 本来下午能解答的.. ...
- android mp3 wav转换工具,音频提取转换工具app
音频提取转换工具app是一款简单实用的安卓音频提取软件,支持专业音频处理,一键搞定,提供视频中提取音频,音频一键转换格式,剪辑音频内容,调整,合并等,功能齐全,免费使用,需要的可以下载音频提取转换工具 ...
最新文章
- asp php 语法区别,asp与php语法对比
- oralce 表空间解锁
- ajax查询返回字符串,从CFC返回结果之前,对AJAX查询执行字符串函数
- 9.kotlin安卓实践课程-用kotlin写第一个fragment的recyclerView的adapter具体实现
- C++和Java中成员数据名和成员函数名的冲突问题
- 他读博期间连发3篇Science,28岁任武大教授后再发Nature!
- 千万条数据,Stack Overflow是如何实现快速分页的
- 数据科学包11-数据可视化
- CocoaPods 简易教程 Alamofire请求数据 Swift
- 服务器位置不可用,服务器的MSDTC不可用解决办法
- ArcGIS导出地图后部分图例不显示
- Kali 2020.4下载安装详细教程
- FDDB人脸库评价人脸检测模型超详细步骤
- 130个实用网站集合
- Android APP启动其他APP(一个APP拉起(跳转到)另一个APP)
- Excel怎么快速提取出网址
- 关于使用梆梆加固后,适配android5.0系统与64位机型的问题
- 集成学习(ensemble learning)干货系列(3)——Boosting方法详解
- linux wps 文件关联,WPS文件扩展名 - 什么是.wps以及如何打开? - ReviverSoft
- 每日格言积累及总结——更新中