Commit 0ae13d93 authored by wangfugui's avatar wangfugui

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mobile/src/main/java/cn/garymb/ygomobile/ui/adapters/DeckListAdapter.java
#	mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/DeckSquareApiUtil.java
#	mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/DeckSquareMyDeckFragment.java
parents 3bbae057 d834fdb6
package cn.garymb.ygomobile.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
......@@ -25,7 +26,12 @@ import com.ourygo.lib.duelassistant.util.Util;
import org.jdeferred.android.AndroidDeferredManager;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import cn.garymb.ygomobile.App;
import cn.garymb.ygomobile.lite.R;
......@@ -235,6 +241,29 @@ public class YGOUtil {
float dp = px / density;
return dp;
}
/**
* 将时间戳转换为 ISO 8601 格式的时间字符串
*/
@SuppressLint("SimpleDateFormat")
public static String convertMillisToIsoString(long timeMillis) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdf.format(new Date(timeMillis));
}
// 方法1:使用SimpleDateFormat解析ISO 8601格式
public static long parseIsoDateToTimestamp(String isoDateString) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = sdf.parse(isoDateString);
return date.getTime();
} catch (ParseException e) {
LogUtil.e("parseIsoDateToTimestamp","解析失败: ", e);
return 0; // 解析失败返回0
}
}
}
......
......@@ -136,19 +136,31 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/baseline_more_time_24"/>
<TextView
android:id="@+id/file_time"
<LinearLayout
android:id="@+id/ll_deck_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:singleLine="true"
android:textColor="@color/holo_blue_bright"
android:textSize="7sp"
tools:text="2025-07-03T19:47:26" />
android:layout_height="match_parent"
android:layout_gravity="bottom">
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="center"
android:src="@drawable/baseline_more_time_24" />
<TextView
android:id="@+id/file_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:singleLine="true"
android:layout_gravity="center"
android:textColor="@color/holo_blue_bright"
android:textSize="7sp"
tools:text="2025-07-03T19:47:26" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
......
......@@ -37,7 +37,7 @@
<string name="quit_tip">¿Deseas salir de la aplicación?</string>
<string name="last_path">Directorio anterior</string>
<string name="create_folder">Nueva carpeta</string>
<string name="intpu_name">Ingresar nombre del deck</string>
<string name="intpu_name">Nombre del deck</string>
<string name="tab_search">Buscar</string>
<string name="tab_result">Resultado</string>
<string name="tab_manager">Deck</string>
......@@ -369,19 +369,19 @@
<string name="replay_list">lista de reproducción</string>
<string name="user_privacy_policy">Política de Privacidad del Usuario</string>
<string name="about_user_privacy_policy">Explicación de los permisos utilizados por YGOMobile</string>
<string name="open">Abrir el Deck</string>
<string name="open">Abrir Deck</string>
<string name="web_warn_save_deck">Abrir el Deck cerrará la página web que estás viendo actualmente. ¿Deseas cerrar la página web y abrir el Deck?</string>
<string name="go_to">pasar a</string>
<string name="local_deck">mis mazos</string>
<string name="go_to">Enviar a</string>
<string name="local_deck">Mis Decks</string>
<string name="in_public">Público</string>
<string name="in_personal_use">En Uso Personal</string>
<string name="register">Registro</string>
<string name="sign_out">Sair</string>
<string name="input_user_name">Introduce el Nombre de Usuario</string>
<string name="sign_out">Salir</string>
<string name="input_user_name">Nombre del Usuario</string>
<string name="input_pwd">Introduce la Contraseña</string>
<string name="deck_square">Plaza de Decks</string>
<string name="my_deck_online">Copia en la Nube</string>
<string name="input_contributor_name">Introduce el Nombre del Compartidor</string>
<string name="my_deck_online">Respaldo en la Nube</string>
<string name="input_contributor_name">Nombre del Compartidor</string>
<string name="sort_by_time">Ordenar por Tiempo</string>
<string name="sort_by_thumb">En el orden recomendado</string>
<string name="account_warning">Por favor, complete su correo electrónico o nombre de usuario!</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment