diff --git a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/node/metric/MetricNode.java b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/node/metric/MetricNode.java index 2f8de6bc..02a96ad6 100755 --- a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/node/metric/MetricNode.java +++ b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/node/metric/MetricNode.java @@ -15,9 +15,10 @@ */ package com.alibaba.csp.sentinel.node.metric; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; /** * Metrics data for a specific resource at given {@code timestamp}. @@ -210,12 +211,19 @@ public class MetricNode { * * @return string format of this. */ + + private static final DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + public String toFatString() { - DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); StringBuilder sb = new StringBuilder(32); sb.delete(0, sb.length()); - sb.append(getTimestamp()).append("|"); - sb.append(df.format(new Date(getTimestamp()))).append("|"); + + long timestamp = getTimestamp(); + sb.append(timestamp).append("|"); + + LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault()); + sb.append(df.format(dateTime)).append("|"); + String legalName = getResource().replaceAll("\\|", "_"); sb.append(legalName).append("|"); sb.append(getPassQps()).append("|");