package com.rc.core.util

import java.text.SimpleDateFormat
import java.util.*

/**
 * info
 *
 * @author ReiChin_
 */
object Format {

    /**
     * 将时区时间格式化成日期字符串
     *
     * @param zonedDateTime 2021-03-30T14:18:41.000+08:00
     */
    fun formatZonedDateTime(zonedDateTime: String?, pattern: String = "yyyy-MM-dd HH:mm:ss"): String {
        val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.getDefault())
        val data: Date? = try {
            dateFormat.parse(zonedDateTime)
        } catch (e: Exception) {
            null
        }

        return formatDate(data, pattern)
    }

    /**
     * 将时间戳格式化成yyyy-MM-dd HH:mm:ss格式的日期字符串
     *
     * @param dateLong
     * @return
     */
    fun formatTimestamp(dateLong: String?, pattern: String = "yyyy-MM-dd HH:mm:ss"): String {
        val date: Date? = try {
            dateLong?.let { Date(it.toLong()) }
        } catch (e: Exception) {
            null
        }

        return formatDate(date, pattern)
    }

    /**
     * 按给定的格式格式化日期.
     *
     * @param date
     * @param pattern : 格式化格式
     * @return
     */
    fun formatDate(date: Date?, pattern: String = "yyyy-MM-dd"): String {
        return date?.let {
            SimpleDateFormat(pattern, Locale.getDefault()).format(it)
        } ?: ""
    }

}