From a034e242fe844a1ca45d2a28710cb7face1f8fe6 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期日, 28 四月 2024 19:07:56 +0800 Subject: [PATCH] 2024年04月28日19:07:49 --- app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java | 142 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 127 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..3d5578d 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,12 @@ 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; @@ -16,8 +19,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 +48,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 +108,134 @@ } /** - * 鍔犲ぉ鏁� + * 鍔狅紙鏃ワ紝鏈堬紝骞达級璁$畻 * - * @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, String timeType) { Calendar newDate = (Calendar) date.clone(); - newDate.add(Calendar.DAY_OF_MONTH, daysToAdd); - return newDate; + 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 daysToSubtract 澶╂暟 + * @param date 鏃ュ巻 + * @param dayMonthYearToSubtract 澶╂暟 * @return 鏃ュ巻 */ - public static Calendar subtractDaysFromDate(Calendar date, int daysToSubtract) { + public static String subtractDayMonthYearFromDate(Calendar date, int dayMonthYearToSubtract, String dateFormat, String timeType) { Calendar newDate = (Calendar) date.clone(); - newDate.add(Calendar.DAY_OF_MONTH, -daysToSubtract); - return newDate; + 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; + } } -- Gitblit v1.8.0