diff --git a/frontend/components/dashboard/widgets/RiskAlertTestWidget.tsx b/frontend/components/dashboard/widgets/RiskAlertTestWidget.tsx
index 8aa2e3e2..df8bf098 100644
--- a/frontend/components/dashboard/widgets/RiskAlertTestWidget.tsx
+++ b/frontend/components/dashboard/widgets/RiskAlertTestWidget.tsx
@@ -636,9 +636,10 @@ export default function RiskAlertTestWidget({ element }: RiskAlertTestWidgetProp
{(() => {
- const ts = String(alert.timestamp);
+ const original = String(alert.timestamp);
+ const ts = original.replace(/\s+/g, ""); // 공백 제거
- // yyyyMMddHHmm 형식 감지 (예: 20251114 1000)
+ // yyyyMMddHHmm 형식 감지 (12자리 숫자)
if (/^\d{12}$/.test(ts)) {
const year = ts.substring(0, 4);
const month = ts.substring(4, 6);
@@ -646,12 +647,20 @@ export default function RiskAlertTestWidget({ element }: RiskAlertTestWidgetProp
const hour = ts.substring(8, 10);
const minute = ts.substring(10, 12);
const date = new Date(`${year}-${month}-${day}T${hour}:${minute}:00`);
- return isNaN(date.getTime()) ? ts : date.toLocaleString("ko-KR");
+ return isNaN(date.getTime()) ? original : date.toLocaleString("ko-KR");
+ }
+
+ // "2025년 11월 14일 13시 20분" 형식
+ const koreanMatch = original.match(/(\d{4})년\s*(\d{1,2})월\s*(\d{1,2})일\s*(\d{1,2})시\s*(\d{1,2})분/);
+ if (koreanMatch) {
+ const [, year, month, day, hour, minute] = koreanMatch;
+ const date = new Date(`${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}T${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:00`);
+ return isNaN(date.getTime()) ? original : date.toLocaleString("ko-KR");
}
// ISO 형식 또는 일반 날짜 형식
- const date = new Date(ts);
- return isNaN(date.getTime()) ? ts : date.toLocaleString("ko-KR");
+ const date = new Date(original);
+ return isNaN(date.getTime()) ? original : date.toLocaleString("ko-KR");
})()}
{alert.source && · {alert.source}}