mac
2024-05-15 9f1321355642cd400b1d1aba94d216bfbea27a66
app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
@@ -1,6 +1,13 @@
package com.hdl.photovoltaic.utils;
import android.annotation.SuppressLint;
import android.text.TextUtils;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.enums.TimeType;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.home.HomePageFragment;
import com.hdl.sdk.link.core.utils.LanguageUtils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
@@ -11,6 +18,14 @@
 * 时间工具类
 */
public class TimeUtils {
    public static final String zhDateYearMonthDayFormat = "yyyy/MM/dd";
    public static final String zhDateYearMonthFormat = "yyyy/MM";
    public static final String zhDateYearFormat = "yyyy";
    public static final String enDateYearMonthDayFormat = "dd/MM/yyyy";
    public static final String enDateYearMonthFormat = "/MM/yyyy";
    public static final String enDateYearFormat = "yyyy";
    /**
     * 获取分钟
@@ -30,6 +45,24 @@
    }
    /**
     * 时间戳转时间(格式:yyyy-MM-dd)
     *
     * @param timestamp   时间戳
     * @param date_format 时间格式(例如"yyyy/MM/dd")
     * @return -
     */
    public static String getDateTimestamp(long timestamp, String date_format) {
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat(date_format, Locale.ENGLISH);
            Date date = new Date(timestamp);
            return dateFormat.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
    /**
     * 时间戳转时间(格式:yyyy-MM-dd HH:mm:ss)
     *
     * @param timestamp 时间戳
@@ -37,7 +70,11 @@
     */
    public static String getTimeFromTimestamp(long timestamp) {
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
            String pattern = "yyyy-MM-dd HH:mm";
            if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.en)) {
                pattern = "dd-MM-yyyy HH:mm";
            }
            SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, Locale.ENGLISH);
            Date date = new Date(timestamp);
            return dateFormat.format(date);
        } catch (Exception e) {
@@ -70,4 +107,135 @@
        return "";
    }
    /**
     * 加(日,月,年)计算
     *
     * @param date              日历
     * @param dayMonthYearToAdd 天数(日,月,年)
     * @return 日历
     */
    public static String addDayMonthYearToDate(Calendar date, int dayMonthYearToAdd, String dateFormat, String timeType) {
        Calendar newDate = (Calendar) date.clone();
        switch (timeType) {
            case TimeType.day: {
                newDate.add(Calendar.DAY_OF_MONTH, dayMonthYearToAdd);
            }
            break;
            case TimeType.month: {
                newDate.add(Calendar.MONTH, dayMonthYearToAdd);
            }
            break;
            case TimeType.year:
            case TimeType.all: {
                newDate.add(Calendar.YEAR, dayMonthYearToAdd);
            }
            break;
        }
        return calendarToString(newDate, dateFormat);
    }
    /**
     * 减(日,月,年)计算
     *
     * @param date                   日历
     * @param dayMonthYearToSubtract 天数
     * @return 日历
     */
    public static String subtractDayMonthYearFromDate(Calendar date, int dayMonthYearToSubtract, String dateFormat, String timeType) {
        Calendar newDate = (Calendar) date.clone();
        switch (timeType) {
            case TimeType.day: {
                newDate.add(Calendar.DAY_OF_MONTH, -dayMonthYearToSubtract);
            }
            break;
            case TimeType.month: {
                newDate.add(Calendar.MONTH, -dayMonthYearToSubtract);
            }
            break;
            case TimeType.year:
            case TimeType.all: {
                newDate.add(Calendar.YEAR, -dayMonthYearToSubtract);
            }
            break;
        }
        return calendarToString(newDate, dateFormat);
    }
    /**
     * 时间戳转Calendar
     *
     * @param timestamp 时间戳
     * @return Calendar对象
     */
    public static Calendar timestampToCalendar(long timestamp) {
        // 将时间戳转换为日期
        Date date = new Date(timestamp);
        // 使用Calendar类设置日期
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar;
    }
    /**
     * 字符串日期格式转Calendar
     *
     * @param dateString (2023/04/01)
     * @param dateFormat (yyyy/MM/dd)
     * @return Calendar对象
     */
    public static Calendar stringToCalendar(String dateString, String dateFormat) {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
        Calendar calendar = Calendar.getInstance();
        try {
            Date date = sdf.parse(dateString);
            if (date != null) {
                calendar.setTime(date);
            }
        } catch (Exception ignored) {
        }
        return calendar;
    }
    /**
     * Calendar转字符串日期格式
     *
     * @param dateFormat (yyyy/MM/dd)
     * @return Calendar对象
     */
    public static String calendarToString(Calendar calendar, String dateFormat) {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
        return sdf.format(calendar.getTime());
    }
    /**
     * Date转字符串日期格式
     *
     * @param dateFormat (yyyy/MM/dd)
     * @return Calendar对象
     */
    public static String dateToString(Date date, String dateFormat) {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
        return sdf.format(date.getTime());
    }
    /**
     * 字符串日期格式转时间戳
     *
     * @param dateString (2024/06/01)
     * @param dateFormat (yyyy/MM/dd)
     * @return 时间戳
     */
    public static long stringDateToTimestamp(String dateString, String dateFormat) {
        try {
            SimpleDateFormat slf = new SimpleDateFormat(dateFormat, Locale.getDefault());
            Date date = slf.parse(dateString);
            if (date == null) {
                return 0;
            }
            return date.getTime(); // 获取时间戳
        } catch (Exception ignored) {
        }
        return 0;
    }
}