diff --git a/internal/utils/app/app.go b/internal/app/app.go
similarity index 100%
rename from internal/utils/app/app.go
rename to internal/app/app.go
diff --git a/internal/utils/app/schedule.go b/internal/app/schedule.go
similarity index 85%
rename from internal/utils/app/schedule.go
rename to internal/app/schedule.go
index 2361ccab..dd0d1ef5 100644
--- a/internal/utils/app/schedule.go
+++ b/internal/app/schedule.go
@@ -14,7 +14,7 @@ var scheduler *cron.Cron
 func GetScheduler() *cron.Cron {
 	schedulerOnce.Do(func() {
 		scheduler = cron.New()
-		location, err := time.LoadLocation("Asia/Shanghai")
+		location, err := time.LoadLocation("Local")
 		if err == nil {
 			scheduler.SetTimezone(location)
 		}
diff --git a/internal/applicant/applicant.go b/internal/applicant/applicant.go
index aec21749..e31a2850 100644
--- a/internal/applicant/applicant.go
+++ b/internal/applicant/applicant.go
@@ -12,11 +12,6 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/pkg/utils/x509"
-	"github.com/usual2970/certimate/internal/repository"
-	"github.com/usual2970/certimate/internal/utils/app"
-
 	"github.com/go-acme/lego/v4/certcrypto"
 	"github.com/go-acme/lego/v4/certificate"
 	"github.com/go-acme/lego/v4/challenge"
@@ -24,6 +19,11 @@ import (
 	"github.com/go-acme/lego/v4/lego"
 	"github.com/go-acme/lego/v4/registration"
 	"github.com/pocketbase/pocketbase/models"
+
+	"github.com/usual2970/certimate/internal/app"
+	"github.com/usual2970/certimate/internal/domain"
+	"github.com/usual2970/certimate/internal/pkg/utils/x509"
+	"github.com/usual2970/certimate/internal/repository"
 )
 
 /*
diff --git a/internal/certificate/service.go b/internal/certificate/service.go
index 8fdf060b..3694224c 100644
--- a/internal/certificate/service.go
+++ b/internal/certificate/service.go
@@ -6,10 +6,10 @@ import (
 	"strconv"
 	"strings"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
 	"github.com/usual2970/certimate/internal/notify"
 	"github.com/usual2970/certimate/internal/repository"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 const (
diff --git a/internal/notify/notify.go b/internal/notify/notify.go
index 6b218a18..9d36c0ef 100644
--- a/internal/notify/notify.go
+++ b/internal/notify/notify.go
@@ -6,9 +6,9 @@ import (
 
 	"golang.org/x/sync/errgroup"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/pkg/core/notifier"
 	"github.com/usual2970/certimate/internal/pkg/utils/maps"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 func SendToAllChannels(subject, message string) error {
diff --git a/internal/repository/access.go b/internal/repository/access.go
index d9cdfbef..2879a3d1 100644
--- a/internal/repository/access.go
+++ b/internal/repository/access.go
@@ -5,8 +5,8 @@ import (
 	"database/sql"
 	"errors"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 type AccessRepository struct{}
diff --git a/internal/repository/acme_account.go b/internal/repository/acme_account.go
index 9f7e6d21..c6144a27 100644
--- a/internal/repository/acme_account.go
+++ b/internal/repository/acme_account.go
@@ -6,9 +6,10 @@ import (
 	"github.com/go-acme/lego/v4/registration"
 	"github.com/pocketbase/dbx"
 	"github.com/pocketbase/pocketbase/models"
-	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 	"golang.org/x/sync/singleflight"
+
+	"github.com/usual2970/certimate/internal/app"
+	"github.com/usual2970/certimate/internal/domain"
 )
 
 type AcmeAccountRepository struct{}
diff --git a/internal/repository/certificate.go b/internal/repository/certificate.go
index bff25a12..36765790 100644
--- a/internal/repository/certificate.go
+++ b/internal/repository/certificate.go
@@ -3,8 +3,8 @@ package repository
 import (
 	"context"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 type CertificateRepository struct{}
diff --git a/internal/repository/setting.go b/internal/repository/setting.go
index c173151f..248ff310 100644
--- a/internal/repository/setting.go
+++ b/internal/repository/setting.go
@@ -3,8 +3,8 @@ package repository
 import (
 	"context"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 type SettingRepository struct{}
diff --git a/internal/repository/statistics.go b/internal/repository/statistics.go
index 92627b36..aa843a12 100644
--- a/internal/repository/statistics.go
+++ b/internal/repository/statistics.go
@@ -3,8 +3,8 @@ package repository
 import (
 	"context"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 type StatisticsRepository struct{}
diff --git a/internal/repository/workflow.go b/internal/repository/workflow.go
index 5ab3f9f4..778cb342 100644
--- a/internal/repository/workflow.go
+++ b/internal/repository/workflow.go
@@ -7,8 +7,8 @@ import (
 
 	"github.com/pocketbase/dbx"
 	"github.com/pocketbase/pocketbase/models"
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 type WorkflowRepository struct{}
diff --git a/internal/repository/workflow_output.go b/internal/repository/workflow_output.go
index cd9e0d47..3da3b653 100644
--- a/internal/repository/workflow_output.go
+++ b/internal/repository/workflow_output.go
@@ -7,8 +7,8 @@ import (
 
 	"github.com/pocketbase/dbx"
 	"github.com/pocketbase/pocketbase/models"
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 type WorkflowOutputRepository struct{}
diff --git a/internal/rest/notify.go b/internal/rest/notify.go
index 463bc81d..a9d00420 100644
--- a/internal/rest/notify.go
+++ b/internal/rest/notify.go
@@ -4,7 +4,7 @@ import (
 	"context"
 
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/resp"
+	"github.com/usual2970/certimate/internal/rest/resp"
 
 	"github.com/labstack/echo/v5"
 )
diff --git a/internal/utils/resp/resp.go b/internal/rest/resp/resp.go
similarity index 100%
rename from internal/utils/resp/resp.go
rename to internal/rest/resp/resp.go
index b4d8240f..d1aa078a 100644
--- a/internal/utils/resp/resp.go
+++ b/internal/rest/resp/resp.go
@@ -3,9 +3,9 @@ package resp
 import (
 	"net/http"
 
-	"github.com/usual2970/certimate/internal/domain"
-
 	"github.com/labstack/echo/v5"
+
+	"github.com/usual2970/certimate/internal/domain"
 )
 
 type Response struct {
diff --git a/internal/rest/statistics.go b/internal/rest/statistics.go
index a26f1d36..b539f6b4 100644
--- a/internal/rest/statistics.go
+++ b/internal/rest/statistics.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/labstack/echo/v5"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/resp"
+	"github.com/usual2970/certimate/internal/rest/resp"
 )
 
 type StatisticsService interface {
diff --git a/internal/rest/workflow.go b/internal/rest/workflow.go
index 8d6270ec..0ccab150 100644
--- a/internal/rest/workflow.go
+++ b/internal/rest/workflow.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/labstack/echo/v5"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/resp"
+	"github.com/usual2970/certimate/internal/rest/resp"
 )
 
 type WorkflowService interface {
diff --git a/internal/utils/xtime/time.go b/internal/utils/xtime/time.go
deleted file mode 100644
index 149321dc..00000000
--- a/internal/utils/xtime/time.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package xtime
-
-import (
-	"time"
-)
-
-func BeijingTimeStr() string {
-	location, _ := time.LoadLocation("Asia/Shanghai")
-
-	// 获取当前时间
-	now := time.Now().In(location)
-
-	// 格式化为字符串
-	return now.Format("2006-01-02 15:04:05")
-}
diff --git a/internal/workflow/event.go b/internal/workflow/event.go
index 04b53521..06c91676 100644
--- a/internal/workflow/event.go
+++ b/internal/workflow/event.go
@@ -7,9 +7,9 @@ import (
 	"github.com/pocketbase/pocketbase/core"
 	"github.com/pocketbase/pocketbase/models"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
 	"github.com/usual2970/certimate/internal/repository"
-	"github.com/usual2970/certimate/internal/utils/app"
 )
 
 const tableName = "workflow"
diff --git a/internal/workflow/node-processor/processor.go b/internal/workflow/node-processor/processor.go
index e3a62297..48616844 100644
--- a/internal/workflow/node-processor/processor.go
+++ b/internal/workflow/node-processor/processor.go
@@ -3,9 +3,9 @@ package nodeprocessor
 import (
 	"context"
 	"errors"
+	"time"
 
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/xtime"
 )
 
 type NodeProcessor interface {
@@ -33,7 +33,7 @@ func (l *Logger) Log(ctx context.Context) *domain.RunLog {
 
 func (l *Logger) AddOutput(ctx context.Context, title, content string, err ...string) {
 	output := domain.RunLogOutput{
-		Time:    xtime.BeijingTimeStr(),
+		Time:    time.Now().UTC().Format(time.RFC3339),
 		Title:   title,
 		Content: content,
 	}
diff --git a/internal/workflow/service.go b/internal/workflow/service.go
index 20510443..65a08397 100644
--- a/internal/workflow/service.go
+++ b/internal/workflow/service.go
@@ -4,8 +4,8 @@ import (
 	"context"
 	"fmt"
 
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/domain"
-	"github.com/usual2970/certimate/internal/utils/app"
 	nodeprocessor "github.com/usual2970/certimate/internal/workflow/node-processor"
 )
 
diff --git a/main.go b/main.go
index 7aa35221..cb800055 100644
--- a/main.go
+++ b/main.go
@@ -6,20 +6,20 @@ import (
 	"os"
 	"strings"
 
+	_ "time/tzdata"
+
 	"github.com/labstack/echo/v5"
 	"github.com/labstack/echo/v5/middleware"
 	"github.com/pocketbase/pocketbase/core"
 	"github.com/pocketbase/pocketbase/plugins/migratecmd"
 
-	_ "github.com/usual2970/certimate/migrations"
-
+	"github.com/usual2970/certimate/internal/app"
 	"github.com/usual2970/certimate/internal/routes"
 	"github.com/usual2970/certimate/internal/scheduler"
-	"github.com/usual2970/certimate/internal/utils/app"
 	"github.com/usual2970/certimate/internal/workflow"
 	"github.com/usual2970/certimate/ui"
 
-	_ "time/tzdata"
+	_ "github.com/usual2970/certimate/migrations"
 )
 
 func main() {