app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -21,6 +21,8 @@ import java.io.InputStream; import java.io.OutputStream; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.InetSocketAddress; import java.net.Socket; import java.util.Hashtable; @@ -48,6 +50,37 @@ } return sHdlCommonLogic; } public static String getConvertDoubleUnit(String value) { if (TextUtils.isEmpty(value)) { return HdlDeviceLogic.noValue ; } BigDecimal formattedValue = getBigDecimal(value); return formattedValue.toString() ; } public static String getConvertDoubleUnit(int value) { if (value == 0) { return HdlDeviceLogic.noValue ; } BigDecimal formattedValue = getBigDecimal(value + ""); return formattedValue.toString() ; } public static String convertString(Object value) { return String.valueOf(value); } public static BigDecimal getBigDecimal(String value) { if (TextUtils.isEmpty(value)) { return new BigDecimal(0); } double doubleValue = Double.parseDouble(value); return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP); } @@ -131,7 +164,6 @@ } } } app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -82,30 +82,7 @@ private List<DeviceBean> mListDevice = new ArrayList<>(); public static String getConvertDoubleUnit(String value) { if (TextUtils.isEmpty(value)) { return noValue + kWh; } BigDecimal formattedValue = getBigDecimal(value); return formattedValue + kWh; } public static String getConvertDoubleUnit(int value) { if (value == 0) { return noValue + kWh; } BigDecimal formattedValue = getBigDecimal(value + ""); return formattedValue + kWh; } private static BigDecimal getBigDecimal(String value) { if (TextUtils.isEmpty(value)) { return new BigDecimal(0); } double doubleValue = Double.parseDouble(value); return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP); } public void clearDeviceList() { if (mListDevice == null) { app/src/main/java/com/hdl/photovoltaic/other/HdlPowerStationDataStatisticsLogic.java
@@ -6,14 +6,19 @@ import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.enums.TimeType; import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.api.HttpApi; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.ui.bean.DataOverBean; import com.hdl.photovoltaic.ui.bean.SocialContributionBean; import com.hdl.photovoltaic.ui.bean.StatisticsBean; import com.hdl.photovoltaic.utils.TimeUtils; import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; /** @@ -38,6 +43,7 @@ } return sHdlPowerStationDataStatisticsLogic; } /** * 获取统计概览数据(公司维度) @@ -87,9 +93,19 @@ public void getStatistics(String type, String time, CloudCallBeak<List<StatisticsBean>> cloudCallBeak) { String requestUrl = HttpApi.POST_Home_page_statistics; JsonObject json = new JsonObject(); json.addProperty("dataType", "GE");//发电量 json.addProperty("dataType", "GE");//发电量(GE : 发电量 ;POWER : 发电功率) json.addProperty("type", type);//类型 if (!TextUtils.isEmpty(time)) { if (!UserConfigManage.getInstance().isZh()) { //英文的时候需要日期格式 if (TimeType.day.equals(type)) { String[] ary = time.split("/"); time = ary[2] + "/" + ary[1] + "/" + ary[0]; } else if (TimeType.month.equals(type)) { String[] ary = time.split("/"); time = ary[1] + "/" + ary[0]; } } json.addProperty("time", time);//时间 } //json.addProperty("zoneType", "password");//区域 app/src/main/java/com/hdl/photovoltaic/ui/bean/StatisticsBean.java
@@ -10,7 +10,7 @@ public class StatisticsBean implements Serializable { private String fieldName;// 描述 private int fieldValue;//值 private String fieldValue;//值 private String time;// 时间 public String getFieldName() { @@ -21,11 +21,11 @@ this.fieldName = fieldName; } public int getFieldValue() { return fieldValue; public String getFieldValue() { return fieldValue == null ? "" : fieldValue; } public void setFieldValue(int fieldValue) { public void setFieldValue(String fieldValue) { this.fieldValue = fieldValue; } app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -26,6 +26,7 @@ import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.TimeType; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlDeviceLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlPowerStationDataStatisticsLogic; @@ -63,8 +64,8 @@ AAChartModel aaChartModel; private String[] fieldNames = {"00:00", "02:00", "05:00", "07:00", "09:00", "17:00", "22:00", "23:59"};//图标X轴坐标值的数组 private Object[] fieldValues = {35, 70.5, 150.5, 135, 170, 205, 222, 245};//图标Y轴坐标值的数组 private String[] fieldNames = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"};//图标X轴坐标值的数组 private Object[] fieldValues = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};//图标Y轴坐标值的数组 private String timeType = TimeType.day;//时间类型(默认:天) @@ -147,7 +148,7 @@ viewBinding.v3.setVisibility(View.VISIBLE); viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE); String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat()); String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType)); viewBinding.yearMonthDayTv.setText(dataStr); getStatistics(); @@ -178,7 +179,7 @@ viewBinding.v2.setVisibility(View.GONE); viewBinding.v3.setVisibility(View.VISIBLE); viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE); String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat()); String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType)); viewBinding.yearMonthDayTv.setText(dataStr); getStatistics(); @@ -210,7 +211,7 @@ viewBinding.v2.setVisibility(View.GONE); viewBinding.v3.setVisibility(View.GONE); viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE); String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat()); String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType)); viewBinding.yearMonthDayTv.setText(dataStr); getStatistics(); } @@ -252,11 +253,11 @@ if (TextUtils.isEmpty(currDate)) { return; } String timeDateFormat = getTimeDateFormat(); String timeDateFormat = TimeUtils.getTimeDateFormat(timeType); Calendar calendar = TimeUtils.stringToCalendar(currDate, timeDateFormat); String time = TimeUtils.subtractDayMonthYearFromDate(calendar, 1, timeDateFormat, timeType); viewBinding.yearMonthDayTv.setText(time); getStatistics(); } }); @@ -268,15 +269,16 @@ if (TextUtils.isEmpty(currDate)) { return; } String timeDateFormat = getTimeDateFormat(); String timeDateFormat = TimeUtils.getTimeDateFormat(timeType); Calendar calendar = TimeUtils.stringToCalendar(currDate, timeDateFormat); String time = TimeUtils.addDayMonthYearToDate(calendar, 1, timeDateFormat, timeType); if (TimeUtils.stringDateToTimestamp(time, timeDateFormat) > getCurrentTimestamp()) { if (TimeUtils.stringDateToTimestamp(time, timeDateFormat) > TimeUtils.getCurrentTimestamp()) { HdlThreadLogic.toast(_mActivity, getString(R.string.the_query_date_is_exceeded)); return; } viewBinding.yearMonthDayTv.setText(time); getStatistics(); } }); //设置下拉箭头颜色 @@ -298,9 +300,9 @@ private void selectedTimePickerBuilder() { String currDate = viewBinding.yearMonthDayTv.getText().toString(); //时间选择器 Calendar selectedDate = TimeUtils.stringToCalendar(currDate, getTimeDateFormat()); Calendar selectedDate = TimeUtils.stringToCalendar(currDate, TimeUtils.getTimeDateFormat(timeType)); Calendar startDate = Calendar.getInstance(); Calendar endDate = TimeUtils.timestampToCalendar(getCurrentTimestamp()); Calendar endDate = TimeUtils.timestampToCalendar(TimeUtils.getCurrentTimestamp()); //设置日期【开始】和【结束】 startDate.set(2023, 1, 1); endDate.set(endDate.get(Calendar.YEAR), endDate.get(Calendar.MONTH), endDate.get(Calendar.DAY_OF_MONTH)); @@ -316,7 +318,7 @@ TimePickerView pvTime = new TimePickerBuilder(_mActivity, new OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) {//选中事件回调 String timeDateFormat = getTimeDateFormat(); String timeDateFormat = TimeUtils.getTimeDateFormat(timeType); String time = TimeUtils.dateToString(date, timeDateFormat); if (viewBinding.yearMonthDayTv.getText().toString().equals(time)) { //表示同一个时间 @@ -356,11 +358,11 @@ aaChartView = viewBinding.autoSizeMyAAChart; aaChartView.callBack = this; if (TimeType.day.equals(timeType)) { aaChartModel = BasicChartComposer.configureAreaChart("Pv发电功率", fieldNames, fieldValues); aaChartModel = BasicChartComposer.configureAreaChart(getString(R.string.pv_power), fieldNames, fieldValues); } else if (TimeType.month.equals(timeType) || TimeType.year.equals(timeType) || TimeType.all.equals(timeType)) { aaChartModel = configureColorfulColumnChart("Pv发电功率", fieldNames, fieldValues); aaChartModel = configureColorfulColumnChart(getString(R.string.pv_power), fieldNames, fieldValues); } aaChartView.aa_drawChartWithChartModel(aaChartModel); @@ -374,7 +376,7 @@ viewBinding.homeOfflineIl.stationTitleTv.setText(getString(R.string.my_power_station_off_line)); viewBinding.homeConnectedIl.stationTitleTv.setText(getString(R.string.to_be_added)); String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat()); String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType)); viewBinding.yearMonthDayTv.setText(dataStr); String installed_capacity = getString(R.string.installed_capacity) + "(" + HdlDeviceLogic.kWp + ")"; @@ -444,10 +446,10 @@ if (statusOverviewBean == null) { return; } viewBinding.homeAllIl.stationTotalTv.setText(statusOverviewBean.getTotal() + ""); viewBinding.homeFaultsIl.stationTotalTv.setText(statusOverviewBean.getFault() + ""); viewBinding.homeOfflineIl.stationTotalTv.setText(statusOverviewBean.getOffline() + ""); viewBinding.homeConnectedIl.stationTotalTv.setText(statusOverviewBean.getConnecting() + ""); viewBinding.homeAllIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal())); viewBinding.homeFaultsIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault())); viewBinding.homeOfflineIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline())); viewBinding.homeConnectedIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting())); } @Override @@ -462,6 +464,7 @@ * 获取统计概览数据(公司维度) */ private void getDataOver() { HdlPowerStationDataStatisticsLogic.getInstance().getDataOver(new CloudCallBeak<DataOverBean>() { @Override public void onSuccess(DataOverBean dataOverBean) { @@ -471,14 +474,14 @@ if (dataOverBean == null) { return; } viewBinding.infoRl1Text1Tv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getInstalledCapacity())); viewBinding.infoRl1Text3Tv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getPower())); viewBinding.infoRl1Text1Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getInstalledCapacity())); viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getPower())); viewBinding.infoRl1FText1Tv.setText(dataOverBean.getPowerRatio()); viewBinding.homePageStationInfoRl2DayIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getTodayElectricity())); viewBinding.homePageStationInfoRl2MonIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getMonthElectricity())); viewBinding.homePageStationInfoRl2YearIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getYearElectricity())); viewBinding.homePageStationInfoRl2CumulativeIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getTotalElectricity())); viewBinding.homePageStationInfoRl2DayIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getTodayElectricity())); viewBinding.homePageStationInfoRl2MonIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getMonthElectricity())); viewBinding.homePageStationInfoRl2YearIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getYearElectricity())); viewBinding.homePageStationInfoRl2CumulativeIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getTotalElectricity())); } }); } @@ -495,21 +498,27 @@ */ private void getStatistics() { String currDate = viewBinding.yearMonthDayTv.getText().toString(); HdlPowerStationDataStatisticsLogic.getInstance().getStatistics(currDate, timeType, new CloudCallBeak<List<StatisticsBean>>() { HdlPowerStationDataStatisticsLogic.getInstance().getStatistics(timeType, currDate, new CloudCallBeak<List<StatisticsBean>>() { @Override public void onSuccess(List<StatisticsBean> list) { if (list == null || list.size() == 0) { return; } String[] keys = new String[list.size()]; Object[] values = new Object[list.size()]; for (int i = 0; i < list.size(); i++) { keys[i] = list.get(i).getFieldName(); values[i] = list.get(i).getFieldValue(); } fieldNames = keys; fieldValues = values; setUpAAChartView(); HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { if (list == null || list.size() == 0) { return; } String[] keys = new String[list.size()]; Object[] values = new Object[list.size()]; for (int i = 0; i < list.size(); i++) { keys[i] = list.get(i).getFieldName(); values[i] = HdlCommonLogic.getBigDecimal(list.get(i).getFieldValue()).intValue();//获取整数部分 } fieldNames = keys; fieldValues = values; setUpAAChartView(); } }); } @Override @@ -529,9 +538,9 @@ if (socialContributionBean == null) { return; } viewBinding.socialContributionData1Tv.setText(socialContributionBean.getCoal()); viewBinding.socialContributionData2Tv.setText(socialContributionBean.getCo2()); viewBinding.socialContributionData3Tv.setText(socialContributionBean.getTreePlanting()); viewBinding.socialContributionData1Tv.setText(HdlCommonLogic.convertString(HdlCommonLogic.getBigDecimal(socialContributionBean.getCoal()))); viewBinding.socialContributionData2Tv.setText(HdlCommonLogic.convertString(HdlCommonLogic.getBigDecimal(socialContributionBean.getCo2()))); viewBinding.socialContributionData3Tv.setText(HdlCommonLogic.convertString(HdlCommonLogic.getBigDecimal(socialContributionBean.getTreePlanting()))); } @Override @@ -539,51 +548,6 @@ } }); } /** * 获取当前系统日期时间戳 * * @return 时间戳 */ private long getCurrentTimestamp() { return new Date().getTime(); } /** * 获取日期格式 (2024/2/09,yyyy/DD/dd) * * @return 日期格式 (2024/2/09,yyyy/DD/dd) */ private String getTimeDateFormat() { String timeDateFormat = TimeUtils.zhDateYearMonthDayFormat; switch (timeType) { case TimeType.day: { timeDateFormat = TimeUtils.zhDateYearMonthDayFormat; if (!UserConfigManage.getInstance().isZh()) { timeDateFormat = TimeUtils.enDateYearMonthDayFormat; } } break; case TimeType.month: { timeDateFormat = TimeUtils.zhDateYearMonthFormat; if (!UserConfigManage.getInstance().isZh()) { timeDateFormat = TimeUtils.enDateYearMonthFormat; } } break; case TimeType.year: case TimeType.all: { timeDateFormat = TimeUtils.zhDateYearFormat; if (!UserConfigManage.getInstance().isZh()) { timeDateFormat = TimeUtils.enDateYearFormat; } } break; } return timeDateFormat; } app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java
@@ -56,7 +56,7 @@ .legendEnabled(false) .markerRadius(0) // .markerSymbol(AAChartSymbolType.Circle) // .markerSymbolStyle(AAChartSymbolStyleType.Normal) .markerSymbolStyle(AAChartSymbolStyleType.Normal) .chartType(AAChartType.Area) .categories(new String[]{"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"}) .series(new AASeriesElement[]{element1}); @@ -95,7 +95,7 @@ // .markerSymbolStyle(AAChartSymbolStyleType.Normal) .chartType(AAChartType.Area) .categories(categories) // .zoomType(AAChartZoomType.None)//手势缩放 .zoomType(AAChartZoomType.None)//手势缩放 // .yAxisMax(500) .yAxisMin(0) .series(new AASeriesElement[]{element1}); app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/CustomStyleChartComposer.java
@@ -195,12 +195,12 @@ .colorsTheme(new String[]{"#38C494",}) .categories(categories) .xAxisLabelsEnabled(true) .zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.None) .legendEnabled(false) .series(new AASeriesElement[]{ new AASeriesElement() // .color(linearGradientColor) .name("东京") .name(tipSuspendName) .data(data) // .colorByPoint(true) .tooltip(new AATooltip().style(new AAStyle().backgroundColor("#FFFFFF").fontSize(25))) app/src/main/java/com/hdl/photovoltaic/utils/SpanUtils.java
New file @@ -0,0 +1,193 @@ package com.hdl.photovoltaic.utils; import android.graphics.Paint; import android.graphics.Typeface; import android.text.Spannable; import android.text.SpannableString; import android.text.TextPaint; import android.text.style.BackgroundColorSpan; import android.text.style.ClickableSpan; import android.text.style.ForegroundColorSpan; import android.text.style.MetricAffectingSpan; import android.text.style.RelativeSizeSpan; import android.view.View; import androidx.annotation.NonNull; /** * String字符串通过区间来改变颜色,大小,字体,下划线等 */ public class SpanUtils { private long mLastClickTime = 0; public static final int TIME_INTERVAL = 1000; private static volatile SpanUtils sSpanUtils; /** * 获取当前对象 * * @return HdlCommonLogic */ public static synchronized SpanUtils getInstance() { if (sSpanUtils == null) { synchronized (SpanUtils.class) { if (sSpanUtils == null) { sSpanUtils = new SpanUtils(); } } } return sSpanUtils; } private SpanUtils() { } /** * 变大变小 */ public CharSequence toSizeSpan(CharSequence charSequence, int start, int end, float scale) { SpannableString spannableString = new SpannableString(charSequence); spannableString.setSpan( new RelativeSizeSpan(scale), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); return spannableString; } /** * 变色 */ public CharSequence toColorSpan(CharSequence charSequence, int start, int end, int color) { SpannableString spannableString = new SpannableString(charSequence); spannableString.setSpan( new ForegroundColorSpan(color), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); return spannableString; } /** * 变背景色 */ public CharSequence toBackgroundColorSpan(CharSequence charSequence, int start, int end, int color) { SpannableString spannableString = new SpannableString(charSequence); spannableString.setSpan( new BackgroundColorSpan(color), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); return spannableString; } /** * 可点击-带下划线 */ public CharSequence toClickSpan(CharSequence charSequence, int start, int end, int color, boolean needUnderLine, OnSpanClickListener listener) { SpannableString spannableString = new SpannableString(charSequence); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(@NonNull View widget) { if (listener != null) { //防止重复点击 if (System.currentTimeMillis() - mLastClickTime >= TIME_INTERVAL) { //to do listener.onClick(charSequence.subSequence(start, end)); mLastClickTime = System.currentTimeMillis(); } } } @Override public void updateDrawState(@NonNull TextPaint ds) { ds.setColor(color); ds.setUnderlineText(needUnderLine); } }; spannableString.setSpan( clickableSpan, start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); return spannableString; } public interface OnSpanClickListener { void onClick(CharSequence charSequence); } /** * 变成自定义的字体 */ public CharSequence toCustomTypeFaceSpan(CharSequence charSequence, int start, int end, Typeface typeface) { SpannableString spannableString = new SpannableString(charSequence); spannableString.setSpan( new MyTypefaceSpan(typeface), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); return spannableString; } /** * 系统原生的TypefaceSpan只能使用原生的默认字体 * 如果使用自定义的字体,通过这个来实现 */ public class MyTypefaceSpan extends MetricAffectingSpan { private final Typeface typeface; public MyTypefaceSpan(final Typeface typeface) { this.typeface = typeface; } @Override public void updateDrawState(final TextPaint drawState) { apply(drawState); } @Override public void updateMeasureState(final TextPaint paint) { apply(paint); } private void apply(final Paint paint) { final Typeface oldTypeface = paint.getTypeface(); final int oldStyle = oldTypeface != null ? oldTypeface.getStyle() : 0; int fakeStyle = oldStyle & ~typeface.getStyle(); if ((fakeStyle & Typeface.BOLD) != 0) { paint.setFakeBoldText(true); } if ((fakeStyle & Typeface.ITALIC) != 0) { paint.setTextSkewX(-0.25f); } paint.setTypeface(typeface); } } } app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
@@ -24,8 +24,52 @@ 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 enDateYearMonthFormat = "MM/yyyy"; public static final String enDateYearFormat = "yyyy"; /** * 获取当前系统日期时间戳 * * @return 时间戳 */ public static long getCurrentTimestamp() { return new Date().getTime(); } /** * 获取日期格式 (2024/2/09,yyyy/DD/dd) * * @return 日期格式 (2024/2/09,yyyy/DD/dd) */ public static String getTimeDateFormat(String timeType) { String timeDateFormat = TimeUtils.zhDateYearMonthDayFormat; switch (timeType) { case TimeType.day: { timeDateFormat = TimeUtils.zhDateYearMonthDayFormat; if (!UserConfigManage.getInstance().isZh()) { timeDateFormat = TimeUtils.enDateYearMonthDayFormat; } } break; case TimeType.month: { timeDateFormat = TimeUtils.zhDateYearMonthFormat; if (!UserConfigManage.getInstance().isZh()) { timeDateFormat = TimeUtils.enDateYearMonthFormat; } } break; case TimeType.year: case TimeType.all: { timeDateFormat = TimeUtils.zhDateYearFormat; if (!UserConfigManage.getInstance().isZh()) { timeDateFormat = TimeUtils.enDateYearFormat; } } break; } return timeDateFormat; } /** * 获取分钟 @@ -35,7 +79,7 @@ */ public static String getMinuteTime(long timestamp) { try { SimpleDateFormat dateFormat = new SimpleDateFormat("mm", Locale.ENGLISH); SimpleDateFormat dateFormat = new SimpleDateFormat("mm", getLocale()); Date date = new Date(timestamp); return dateFormat.format(date); } catch (Exception e) { @@ -53,7 +97,7 @@ */ public static String getDateTimestamp(long timestamp, String date_format) { try { SimpleDateFormat dateFormat = new SimpleDateFormat(date_format, Locale.ENGLISH); SimpleDateFormat dateFormat = new SimpleDateFormat(date_format, getLocale()); Date date = new Date(timestamp); return dateFormat.format(date); } catch (Exception e) { @@ -74,7 +118,7 @@ if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.en)) { pattern = "dd-MM-yyyy HH:mm"; } SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, Locale.ENGLISH); SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, getLocale()); Date date = new Date(timestamp); return dateFormat.format(date); } catch (Exception e) { @@ -184,7 +228,7 @@ * @return Calendar对象 */ public static Calendar stringToCalendar(String dateString, String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH); SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, getLocale()); Calendar calendar = Calendar.getInstance(); try { Date date = sdf.parse(dateString); @@ -203,7 +247,7 @@ * @return Calendar对象 */ public static String calendarToString(Calendar calendar, String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH); SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, getLocale()); return sdf.format(calendar.getTime()); } @@ -214,7 +258,7 @@ * @return Calendar对象 */ public static String dateToString(Date date, String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH); SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, getLocale()); return sdf.format(date.getTime()); } @@ -227,7 +271,7 @@ */ public static long stringDateToTimestamp(String dateString, String dateFormat) { try { SimpleDateFormat slf = new SimpleDateFormat(dateFormat, Locale.getDefault()); SimpleDateFormat slf = new SimpleDateFormat(dateFormat, getLocale()); Date date = slf.parse(dateString); if (date == null) { return 0; @@ -238,4 +282,8 @@ return 0; } private static Locale getLocale() { return Locale.ENGLISH; } } app/src/main/res/layout/fragment_home_page.xml
@@ -103,11 +103,13 @@ <TextView android:id="@+id/info_rl1_f_text1_tv" android:layout_width="56dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerInParent="true" android:layout_marginStart="@dimen/dp_6" android:gravity="end|center_vertical" android:text="88" android:textColor="@color/text_E6000000" android:textSize="@dimen/text_26" android:textStyle="bold" /> @@ -528,8 +530,8 @@ android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="@dimen/dp_10" android:layout_marginTop="@dimen/dp_35" android:text="s" android:layout_marginTop="@dimen/dp_39" android:text="@string/saving_standard_coal" android:textColor="@color/text_66000000" android:textSize="@dimen/text_12" /> @@ -584,8 +586,8 @@ android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="@dimen/dp_10" android:layout_marginTop="@dimen/dp_35" android:text="s" android:layout_marginTop="@dimen/dp_39" android:text="@string/co_reduction_rate" android:textColor="@color/text_66000000" android:textSize="@dimen/text_12" /> @@ -639,8 +641,8 @@ android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="@dimen/dp_10" android:layout_marginTop="@dimen/dp_35" android:text="s" android:layout_marginTop="@dimen/dp_39" android:text="@string/quantity_of_equivalent_values" android:textColor="@color/text_66000000" android:textSize="@dimen/text_12" /> app/src/main/res/values/strings.xml
@@ -293,4 +293,8 @@ <string name="email_address">邮箱地址</string> <string name="successful_replication">复制成功</string> <string name="to_be_added">待接入</string> <string name="saving_standard_coal">节约标准煤</string> <string name="co_reduction_rate">CO2减排</string> <string name="quantity_of_equivalent_values">等效值数量</string> <string name="pv_power">Pv发电功率</string> </resources>