|
@@ -10,10 +10,21 @@ import java.util.*
|
|
|
* description: 时间相关的工具类
|
|
|
*/
|
|
|
object DateUtils {
|
|
|
+ //默认的时间格式
|
|
|
+ enum class DateFormat(val dateFormat: String) {
|
|
|
+ DEFAULT_PATTERN("yyyy-MM-dd HH:mm:ss"),
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- const val DATE_DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss"
|
|
|
-
|
|
|
+ //默认单独时间格式
|
|
|
+ enum class SingleDateFormat {
|
|
|
+ YEAR,
|
|
|
+ MONTH,
|
|
|
+ DAY,
|
|
|
+ HOUR,
|
|
|
+ MINUTE,
|
|
|
+ SECOND,
|
|
|
+ WEEK
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 获取格式化的时间
|
|
@@ -21,155 +32,11 @@ object DateUtils {
|
|
|
* @param pattern 格式
|
|
|
* @param locale 区域
|
|
|
*/
|
|
|
- fun getFormatDate(time: Long, pattern: String, locale: Locale = Locale.getDefault()): String {
|
|
|
- val sdf = SimpleDateFormat(pattern, locale)
|
|
|
- return sdf.format(Date(time))
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取当前格式化后的时间
|
|
|
- */
|
|
|
- fun getTime(pattern: String = DATE_DEFAULT_PATTERN): String {
|
|
|
- return getFormatDate(System.currentTimeMillis(), pattern)
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定的时间毫秒数
|
|
|
- * @param date 时间
|
|
|
- * @param pattern 传入的时间对应格式
|
|
|
- * @description 时间格式例如:yyyy-MM-dd HH:mm:ss
|
|
|
- */
|
|
|
- fun getMillionSeconds(date: String, pattern: String): Long {
|
|
|
- val sdf = SimpleDateFormat(pattern)
|
|
|
- var millionSeconds: Long = 0
|
|
|
- millionSeconds = try {
|
|
|
- if (date.isEmpty()) {
|
|
|
- return millionSeconds
|
|
|
- }
|
|
|
- // 毫秒
|
|
|
- sdf.parse(date).time
|
|
|
- } catch (e: Exception) {
|
|
|
- e.printStackTrace()
|
|
|
- return millionSeconds
|
|
|
- }
|
|
|
- return millionSeconds
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * @return
|
|
|
- * @方法说明:判断用户的设备时区是否为东八区(中国)
|
|
|
- * @方法名称:isInEasternEightZones
|
|
|
- * @返回值:boolean
|
|
|
- */
|
|
|
- fun isInEasternEightZones(): Boolean {
|
|
|
- return TimeZone.getDefault() === TimeZone.getTimeZone("GMT+08")
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * @param date
|
|
|
- * @param oldZone
|
|
|
- * @param newZone
|
|
|
- * @return
|
|
|
- * @方法说明:根据不同时区,转换时间 2014年7月31日
|
|
|
- * @方法名称:transformTime
|
|
|
- * @返回值:Date
|
|
|
- */
|
|
|
- fun transformTime(date: Date, oldZone: TimeZone, newZone: TimeZone): Date? {
|
|
|
- val timeOffset = (oldZone.getOffset(date.time) - newZone.getOffset(date.time))
|
|
|
- return Date(date.time - timeOffset)
|
|
|
- }
|
|
|
+ fun getFormatDate(time: Long, pattern: String = DateFormat.DEFAULT_PATTERN.dateFormat, locale: Locale = Locale.getDefault()) = SimpleDateFormat(pattern, locale).format(Date(time))
|
|
|
|
|
|
+ fun isBefore(src: Date, destDate: Date): Boolean = src.before(destDate)
|
|
|
|
|
|
- /**
|
|
|
- * 获取星期几
|
|
|
- * @return 1-7 对应星期一 - 星期日
|
|
|
- */
|
|
|
- fun getDayOfWeek(date: Date) : Int{
|
|
|
- val weeks = arrayOf(7, 1, 2, 3, 4, 5,6)
|
|
|
-
|
|
|
- val cal = Calendar.getInstance()
|
|
|
- cal.time = date
|
|
|
- var week_index = cal[Calendar.DAY_OF_WEEK] - 1
|
|
|
- if (week_index < 0) {
|
|
|
- week_index = 0
|
|
|
- }
|
|
|
- return weeks[week_index]
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 将系统时间转成英文字符串 星期-日期-月份
|
|
|
- *
|
|
|
- * @return Friday 29, Sept.
|
|
|
- */
|
|
|
- fun systemTimeToEnglishString(): String {
|
|
|
- val dataTime: String = getTime("yyyy-MM-dd")
|
|
|
- val split = dataTime.split("-".toRegex()).toTypedArray()
|
|
|
- var month = split[1]
|
|
|
- val day = split[2]
|
|
|
- var dayOfWeek: Int = getDayOfWeek(Date())
|
|
|
- var week = ""
|
|
|
- when (dayOfWeek) {
|
|
|
- 7 -> {
|
|
|
- week = "Sunday"
|
|
|
- week = "Sun"
|
|
|
- }
|
|
|
- 1 -> {
|
|
|
- week = "Monday"
|
|
|
- week = "Mon"
|
|
|
- }
|
|
|
- 2 -> {
|
|
|
- week = "Tuesday"
|
|
|
- week = "Tues"
|
|
|
- }
|
|
|
- 3 -> {
|
|
|
- week = "Wednesday"
|
|
|
- week = "Wed"
|
|
|
- }
|
|
|
- 4 -> {
|
|
|
- week = "Thursday"
|
|
|
- week = "Thur"
|
|
|
- }
|
|
|
- 5 -> {
|
|
|
- week = "Friday"
|
|
|
- week = "Fri"
|
|
|
- }
|
|
|
- 6 -> {
|
|
|
- week = "Saturday"
|
|
|
- week = "Sat"
|
|
|
- }
|
|
|
- else -> {}
|
|
|
- }
|
|
|
- when (month) {
|
|
|
- "01" -> month = "Jan"
|
|
|
- "02" -> month = "Feb"
|
|
|
- "03" -> month = "Mar"
|
|
|
- "04" -> month = "Apr"
|
|
|
- "05" -> month = "May"
|
|
|
- "06" -> month = "Jun"
|
|
|
- "07" -> month = "Jul"
|
|
|
- "08" -> month = "Aug"
|
|
|
- "09" -> month = "Sept"
|
|
|
- "10" -> month = "Oct"
|
|
|
- "11" -> month = "Nov"
|
|
|
- "12" -> month = "Dec"
|
|
|
- else -> {}
|
|
|
- }
|
|
|
- return "$week , $month.$day"
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- fun isBefore(src : Date, destDate: Date) : Boolean{
|
|
|
- return src.before(destDate)
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- fun isAfter(src: Date, destDate: Date) : Boolean{
|
|
|
- return src.after(destDate)
|
|
|
- }
|
|
|
+ fun isAfter(src: Date, destDate: Date): Boolean = src.after(destDate)
|
|
|
|
|
|
/**
|
|
|
* 传入的时间是否介于一段时间内
|
|
@@ -177,9 +44,5 @@ object DateUtils {
|
|
|
* @param startDate 介于的开始时间
|
|
|
* @param endDate 介于的结束时间
|
|
|
*/
|
|
|
- fun timeBetweenDate(time : Date, startDate: Date, endDate: Date) : Boolean{
|
|
|
- return isBefore(time, endDate) && isAfter(time, startDate)
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+ fun timeBetweenDate(time: Date, startDate: Date, endDate: Date): Boolean = isBefore(time, endDate) && isAfter(time, startDate)
|
|
|
}
|