From 9f1321355642cd400b1d1aba94d216bfbea27a66 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 15 五月 2024 15:31:30 +0800 Subject: [PATCH] 2024年05月15日15:31:27 --- app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 155 insertions(+), 4 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 89aa006..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,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"; /** * 鑾峰彇鍒嗛挓 @@ -32,12 +47,13 @@ /** * 鏃堕棿鎴宠浆鏃堕棿(鏍煎紡:yyyy-MM-dd) * - * @param timestamp 鏃堕棿鎴� + * @param timestamp 鏃堕棿鎴� + * @param date_format 鏃堕棿鏍煎紡(渚嬪"yyyy/MM/dd") * @return - */ - public static String getDateTimestamp(long timestamp) { + public static String getDateTimestamp(long timestamp, String date_format) { try { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); + SimpleDateFormat dateFormat = new SimpleDateFormat(date_format, Locale.ENGLISH); Date date = new Date(timestamp); return dateFormat.format(date); } catch (Exception e) { @@ -54,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) { @@ -87,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; + } + } -- Gitblit v1.8.0