From b1303ee6ba15d8202f7fe95037267feaa4520fc5 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期日, 28 四月 2024 15:55:48 +0800 Subject: [PATCH] 2024年04月28日15:55:42 --- app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java | 125 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 110 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java index 2e9aed4..899010f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java +++ b/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java @@ -1,9 +1,11 @@ package com.hdl.photovoltaic.utils; import android.annotation.SuppressLint; +import android.text.TextUtils; import com.hdl.photovoltaic.config.UserConfigManage; 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; @@ -16,8 +18,13 @@ */ public class TimeUtils { - public static final String zhDateFormat = "yyyy/MM/dd"; - public static final String enDateFormat = "dd/MM/yyyy"; + 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"; /** * 鑾峰彇鍒嗛挓 @@ -40,7 +47,7 @@ * 鏃堕棿鎴宠浆鏃堕棿(鏍煎紡:yyyy-MM-dd) * * @param timestamp 鏃堕棿鎴� - * @param date_format 鏃堕棿鏍煎紡(渚嬪"yyyy-MM-dd") + * @param date_format 鏃堕棿鏍煎紡(渚嬪"yyyy/MM/dd") * @return - */ public static String getDateTimestamp(long timestamp, String date_format) { @@ -100,30 +107,118 @@ } /** - * 鍔犲ぉ鏁� + * 鍔狅紙鏃ワ紝鏈堬紝骞达級璁$畻 * - * @param date 鏃ュ巻 - * @param daysToAdd 澶╂暟 + * @param date 鏃ュ巻 + * @param dayMonthYearToAdd 澶╂暟锛堟棩锛屾湀锛屽勾锛� * @return 鏃ュ巻 */ - public static Calendar addDaysToDate(Calendar date, int daysToAdd) { + public static String addDayMonthYearToDate(Calendar date, int dayMonthYearToAdd, String dateFormat, HomePageFragment.TimeType timeType) { Calendar newDate = (Calendar) date.clone(); - newDate.add(Calendar.DAY_OF_MONTH, daysToAdd); - return newDate; + if (timeType == HomePageFragment.TimeType.day) { + newDate.add(Calendar.DAY_OF_MONTH, dayMonthYearToAdd); + } else if (timeType == HomePageFragment.TimeType.month) { + newDate.add(Calendar.MONTH, dayMonthYearToAdd); + } else if (timeType == HomePageFragment.TimeType.year || timeType == HomePageFragment.TimeType.lifecycle) { + newDate.add(Calendar.YEAR, dayMonthYearToAdd); + } + return calendarToString(newDate, dateFormat); } /** - * 鍑忓ぉ鏁� + * 鍑忥紙鏃ワ紝鏈堬紝骞达級璁$畻 * - * @param date 鏃ュ巻 - * @param daysToSubtract 澶╂暟 + * @param date 鏃ュ巻 + * @param dayMonthYearToSubtract 澶╂暟 * @return 鏃ュ巻 */ - public static Calendar subtractDaysFromDate(Calendar date, int daysToSubtract) { + public static String subtractDayMonthYearFromDate(Calendar date, int dayMonthYearToSubtract, String dateFormat, HomePageFragment.TimeType timeType) { Calendar newDate = (Calendar) date.clone(); - newDate.add(Calendar.DAY_OF_MONTH, -daysToSubtract); - return newDate; + if (timeType == HomePageFragment.TimeType.day) { + newDate.add(Calendar.DAY_OF_MONTH, -dayMonthYearToSubtract); + } else if (timeType == HomePageFragment.TimeType.month) { + newDate.add(Calendar.MONTH, -dayMonthYearToSubtract); + } else if (timeType == HomePageFragment.TimeType.year) { + newDate.add(Calendar.YEAR, -dayMonthYearToSubtract); + } + 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; + } } -- Gitblit v1.8.0