diff --git a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj index 9d7a0a21..b9038709 100644 --- a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj +++ b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj @@ -20,7 +20,7 @@ - + @@ -35,7 +35,7 @@ - + diff --git a/Admin.NET/Admin.NET.Core/Extension/ObjectExtension.cs b/Admin.NET/Admin.NET.Core/Extension/ObjectExtension.cs index 8f6c106c..d6491776 100644 --- a/Admin.NET/Admin.NET.Core/Extension/ObjectExtension.cs +++ b/Admin.NET/Admin.NET.Core/Extension/ObjectExtension.cs @@ -261,9 +261,9 @@ public static partial class ObjectExtension public static string ParseToDateTimeForRep(this string str) { if (string.IsNullOrWhiteSpace(str)) - str = $"{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}"; + str = $"{DateTime.UtcNow.Year}/{DateTime.UtcNow.Month}/{DateTime.UtcNow.Day}"; - var date = DateTime.Now; + var date = DateTime.UtcNow; var reg = new Regex(@"(\{.+?})"); var match = reg.Matches(str); match.ToList().ForEach(u => diff --git a/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs b/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs index 59f6d7b3..f13e329c 100644 --- a/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs +++ b/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs @@ -52,7 +52,7 @@ public class OnlineUserHub : Hub UserId = _userManager.UserId, UserName = _userManager.Account, RealName = _userManager.RealName, - Time = DateTime.Now, + Time = DateTime.UtcNow, Ip = httpContext.GetRemoteIpAddressToIPv4(true), Browser = httpContext.GetClientBrowser(), Os = httpContext.GetClientOs(), diff --git a/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs b/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs index 3e0d5661..904ee150 100644 --- a/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs @@ -143,7 +143,7 @@ public class EnumToDictJob : IJob var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Green; - Console.WriteLine($"【{DateTime.Now}】系统枚举转换字典"); + Console.WriteLine($"【{DateTime.UtcNow}】系统枚举转换字典"); Console.ForegroundColor = originColor; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Job/LogJob.cs b/Admin.NET/Admin.NET.Core/Job/LogJob.cs index 0f766e95..8db0a9e9 100644 --- a/Admin.NET/Admin.NET.Core/Job/LogJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/LogJob.cs @@ -32,11 +32,11 @@ public class LogJob : IJob var sysConfigService = serviceScope.ServiceProvider.GetRequiredService(); var daysAgo = await sysConfigService.GetConfigValue(ConfigConst.SysLogRetentionDays); // 日志保留天数 - await logVisRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除访问日志 - await logOpRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除操作日志 - await logDiffRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除差异日志 + await logVisRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.UtcNow.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除访问日志 + await logOpRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.UtcNow.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除操作日志 + await logDiffRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.UtcNow.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除差异日志 - string msg = $"【{DateTime.Now}】清理系统日志成功,删除 {daysAgo} 天前的日志数据!"; + string msg = $"【{DateTime.UtcNow}】清理系统日志成功,删除 {daysAgo} 天前的日志数据!"; var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(msg); diff --git a/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs b/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs index e5c333c2..881e6dd5 100644 --- a/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs @@ -34,7 +34,7 @@ public class OnlineUserJob : IJob // 缓存租户列表 await serviceScope.ServiceProvider.GetRequiredService().CacheTenant(); - string msg = $"【{DateTime.Now}】清理在线用户成功!服务已重启..."; + string msg = $"【{DateTime.UtcNow}】清理在线用户成功!服务已重启..."; var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(msg); diff --git a/Admin.NET/Admin.NET.Core/Job/RoleApiJob.cs b/Admin.NET/Admin.NET.Core/Job/RoleApiJob.cs index 8d830f3e..77d3598c 100644 --- a/Admin.NET/Admin.NET.Core/Job/RoleApiJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/RoleApiJob.cs @@ -55,11 +55,11 @@ public class RoleApiJob : IJob var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Blue; - Console.WriteLine($"【{DateTime.Now}】初始化管理员角色接口资源"); + Console.WriteLine($"【{DateTime.UtcNow}】初始化管理员角色接口资源"); Console.ForegroundColor = originColor; // 自定义日志 - _logger.LogInformation($"【{DateTime.Now}】初始化管理员角色接口资源"); + _logger.LogInformation($"【{DateTime.UtcNow}】初始化管理员角色接口资源"); await Task.CompletedTask; } diff --git a/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs b/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs index d4253a57..c047bbe6 100644 --- a/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs +++ b/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs @@ -61,7 +61,7 @@ public class ElasticSearchLoggingWriter : IDatabaseLoggingWriter, IDisposable var sysLogOp = new SysLogOp { - Id = DateTime.Now.Ticks, + Id = DateTime.UtcNow.Ticks, ControllerName = loggingMonitor.controllerName, ActionName = loggingMonitor.actionTypeName, DisplayTitle = loggingMonitor.displayTitle, diff --git a/Admin.NET/Admin.NET.Core/Logging/LogExceptionHandler.cs b/Admin.NET/Admin.NET.Core/Logging/LogExceptionHandler.cs index 7895563b..28c3e715 100644 --- a/Admin.NET/Admin.NET.Core/Logging/LogExceptionHandler.cs +++ b/Admin.NET/Admin.NET.Core/Logging/LogExceptionHandler.cs @@ -42,7 +42,7 @@ // Browser = context.HttpContext.Request.Headers["User-Agent"], // TraceId = App.GetTraceId(), // ThreadId = App.GetThreadId(), -// LogDateTime = DateTime.Now, +// LogDateTime = DateTime.UtcNow, // LogLevel = LogLevel.Error // }; diff --git a/Admin.NET/Admin.NET.Core/Logging/LoggingSetup.cs b/Admin.NET/Admin.NET.Core/Logging/LoggingSetup.cs index b0e502df..d2a2f853 100644 --- a/Admin.NET/Admin.NET.Core/Logging/LoggingSetup.cs +++ b/Admin.NET/Admin.NET.Core/Logging/LoggingSetup.cs @@ -44,7 +44,7 @@ public static class LoggingSetup { options.WithTraceId = true; // 显示线程Id options.WithStackFrame = true; // 显示程序集 - options.FileNameRule = fileName => string.Format(fileName, DateTime.Now, logLevel.ToString()); // 每天创建一个文件 + options.FileNameRule = fileName => string.Format(fileName, DateTime.UtcNow, logLevel.ToString()); // 每天创建一个文件 options.WriteFilter = logMsg => logMsg.LogLevel == logLevel; // 日志级别 options.HandleWriteError = (writeError) => // 写入失败时启用备用文件 { diff --git a/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs b/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs index ac0e7c43..3c2d7a79 100644 --- a/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs @@ -240,7 +240,7 @@ public class SysAuthService : IDynamicApiController, ITransient // 更新用户登录信息 user.LastLoginIp = _httpContextAccessor.HttpContext.GetRemoteIpAddressToIPv4(true); (user.LastLoginAddress, double? longitude, double? latitude) = CommonUtil.GetIpAddress(user.LastLoginIp); - user.LastLoginTime = DateTime.Now; + user.LastLoginTime = DateTime.UtcNow; user.LastLoginDevice = CommonUtil.GetClientDeviceInfo(_httpContextAccessor.HttpContext?.Request?.Headers?.UserAgent); await _sysUserRep.AsUpdateable(user).UpdateColumns(u => new { @@ -277,7 +277,7 @@ public class SysAuthService : IDynamicApiController, ITransient // 获取水印文字(若系统水印为空则全局为空) var watermarkText = await _sysConfigService.GetConfigValue(ConfigConst.SysWebWatermark); if (!string.IsNullOrWhiteSpace(watermarkText)) - watermarkText += $"-{user.RealName}"; // $"-{user.RealName}-{_httpContextAccessor.HttpContext.GetRemoteIp()}-{DateTime.Now}"; + watermarkText += $"-{user.RealName}"; // $"-{user.RealName}-{_httpContextAccessor.HttpContext.GetRemoteIp()}-{DateTime.UtcNow}"; return new LoginUserOutput { diff --git a/Admin.NET/Admin.NET.Core/Service/Common/SysCommonService.cs b/Admin.NET/Admin.NET.Core/Service/Common/SysCommonService.cs index d06287af..d1f3510a 100644 --- a/Admin.NET/Admin.NET.Core/Service/Common/SysCommonService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Common/SysCommonService.cs @@ -138,7 +138,7 @@ public class SysCommonService : IDynamicApiController, ITransient return await Task.FromResult(new FileStreamResult(resultStream, "application/octet-stream") { - FileDownloadName = $"{(string.IsNullOrEmpty(fileName) ? "错误标记_" + DateTime.Now.ToString("yyyyMMddhhmmss") : fileName)}.xlsx" + FileDownloadName = $"{(string.IsNullOrEmpty(fileName) ? "错误标记_" + DateTime.UtcNow.ToString("yyyyMMddhhmmss") : fileName)}.xlsx" }); } diff --git a/Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs b/Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs index b6a41ce2..be5997fe 100644 --- a/Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs +++ b/Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs @@ -528,7 +528,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient Directory.CreateDirectory(backupDirectory); // 构建备份文件名 - string backupFileName = $"backup_{DateTime.Now:yyyyMMddHHmmss}.sql"; + string backupFileName = $"backup_{DateTime.UtcNow:yyyyMMddHHmmss}.sql"; string backupFilePath = Path.Combine(backupDirectory, backupFileName); // 启动pg_dump进程进行备份 diff --git a/Admin.NET/Admin.NET.Core/Service/Job/JobClusterServer.cs b/Admin.NET/Admin.NET.Core/Service/Job/JobClusterServer.cs index 139b2ec6..14bf013f 100644 --- a/Admin.NET/Admin.NET.Core/Service/Job/JobClusterServer.cs +++ b/Admin.NET/Admin.NET.Core/Service/Job/JobClusterServer.cs @@ -11,7 +11,7 @@ namespace Admin.NET.Core.Service; /// public class JobClusterServer : IJobClusterServer { - private readonly Random rd = new(DateTime.Now.Millisecond); + private readonly Random rd = new(DateTime.UtcNow.Millisecond); public JobClusterServer() { diff --git a/Admin.NET/Admin.NET.Core/Service/Logging/SysLogExService.cs b/Admin.NET/Admin.NET.Core/Service/Logging/SysLogExService.cs index 5d9a887f..284c26ba 100644 --- a/Admin.NET/Admin.NET.Core/Service/Logging/SysLogExService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Logging/SysLogExService.cs @@ -74,6 +74,6 @@ public class SysLogExService : IDynamicApiController, ITransient IExcelExporter excelExporter = new ExcelExporter(); var res = await excelExporter.ExportAsByteArray(logExList); - return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "异常日志.xlsx" }; + return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.UtcNow.ToString("yyyyMMddHHmm") + "异常日志.xlsx" }; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Logging/SysLogOpService.cs b/Admin.NET/Admin.NET.Core/Service/Logging/SysLogOpService.cs index 480ed487..ab1f3c21 100644 --- a/Admin.NET/Admin.NET.Core/Service/Logging/SysLogOpService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Logging/SysLogOpService.cs @@ -74,6 +74,6 @@ public class SysLogOpService : IDynamicApiController, ITransient IExcelExporter excelExporter = new ExcelExporter(); var res = await excelExporter.ExportAsByteArray(logOpList); - return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "操作日志.xlsx" }; + return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.UtcNow.ToString("yyyyMMddHHmm") + "操作日志.xlsx" }; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs b/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs index c5896ba2..a216009d 100644 --- a/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs @@ -101,7 +101,7 @@ public class SysNoticeService : IDynamicApiController, ITransient public async Task Public(NoticeInput input) { // 更新发布状态和时间 - await _sysNoticeRep.UpdateAsync(u => new SysNotice() { Status = NoticeStatusEnum.PUBLIC, PublicTime = DateTime.Now }, u => u.Id == input.Id); + await _sysNoticeRep.UpdateAsync(u => new SysNotice() { Status = NoticeStatusEnum.PUBLIC, PublicTime = DateTime.UtcNow }, u => u.Id == input.Id); var notice = await _sysNoticeRep.GetFirstAsync(u => u.Id == input.Id); @@ -131,7 +131,7 @@ public class SysNoticeService : IDynamicApiController, ITransient await _sysNoticeUserRep.UpdateAsync(u => new SysNoticeUser { ReadStatus = NoticeUserStatusEnum.READ, - ReadTime = DateTime.Now + ReadTime = DateTime.UtcNow }, u => u.NoticeId == input.Id && u.UserId == _userManager.UserId); } diff --git a/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs b/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs index d3d8f741..1529e4ea 100644 --- a/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs @@ -62,7 +62,7 @@ public class SysServerService : IDynamicApiController, ITransient public dynamic GetServerUsed() { var programStartTime = Process.GetCurrentProcess().StartTime; - var totalMilliseconds = (DateTime.Now - programStartTime).TotalMilliseconds.ToString(); + var totalMilliseconds = (DateTime.UtcNow - programStartTime).TotalMilliseconds.ToString(); var ts = totalMilliseconds.Contains('.') ? totalMilliseconds.Split('.')[0] : totalMilliseconds; var programRunTime = DateTimeUtil.FormatTime(ts.ParseToLong()); diff --git a/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs b/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs index 905974f6..eaa500d6 100644 --- a/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs @@ -68,7 +68,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient [DisplayName("微信支付统一下单获取Id(商户直连)")] public async Task CreatePayTransaction([FromBody] WechatPayTransactionInput input) { - string outTradeNumber = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 微信需要的订单号(唯一) + string outTradeNumber = DateTimeOffset.UtcNow.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 微信需要的订单号(唯一) //检查订单信息是否已存在(使用“商户交易单号+状态”唯一性判断) var wechatPay = await _sysWechatPayRep.GetFirstAsync(u => u.OrderId == input.OrderId && u.OrderStatus == input.OrderStatus); @@ -84,7 +84,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient Description = input.Description, Attachment = input.Attachment, GoodsTag = input.GoodsTag, - ExpireTime = DateTimeOffset.Now.AddMinutes(10), + ExpireTime = DateTimeOffset.UtcNow.AddMinutes(10), NotifyUrl = _payCallBackOptions.WechatPayUrl, Amount = new CreatePayTransactionJsapiRequest.Types.Amount() { Total = input.Total }, Payer = new CreatePayTransactionJsapiRequest.Types.Payer() { OpenId = input.OpenId } @@ -126,7 +126,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient [DisplayName("微信支付统一下单获取Id(服务商模式)")] public async Task CreatePayPartnerTransaction([FromBody] WechatPayTransactionInput input) { - string outTradeNumber = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 微信需要的订单号(唯一) + string outTradeNumber = DateTimeOffset.UtcNow.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 微信需要的订单号(唯一) //检查订单信息是否已存在(使用“商户交易单号+状态”唯一性判断) var wechatPay = await _sysWechatPayRep.GetFirstAsync(u => u.OrderId == input.OrderId && u.OrderStatus == input.OrderStatus); @@ -145,7 +145,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient Description = input.Description, Attachment = input.Attachment, GoodsTag = input.GoodsTag, - ExpireTime = DateTimeOffset.Now.AddMinutes(10), + ExpireTime = DateTimeOffset.UtcNow.AddMinutes(10), NotifyUrl = _payCallBackOptions.WechatPayUrl, Amount = new CreatePayPartnerTransactionJsapiRequest.Types.Amount() { Total = input.Total }, Payer = new CreatePayPartnerTransactionJsapiRequest.Types.Payer() { OpenId = input.OpenId } @@ -288,7 +288,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient var request = new CreateRefundDomesticRefundRequest() { OutTradeNumber = input.OutTradeNumber, - OutRefundNumber = "REFUND_" + DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"), + OutRefundNumber = "REFUND_" + DateTimeOffset.UtcNow.ToString("yyyyMMddHHmmssfff"), Amount = new CreateRefundDomesticRefundRequest.Types.Amount() { Total = input.Total, diff --git a/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs b/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs index 6c8455c6..85e78dcc 100644 --- a/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs +++ b/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs @@ -117,7 +117,7 @@ public static class SqlSugarSetup // par.Value = string.Concat(par.Value.ToString()[..100], "......"); //} - var log = $"【{DateTime.Now}——执行SQL】\r\n{UtilMethods.GetNativeSql(sql, pars)}\r\n"; + var log = $"【{DateTime.UtcNow}——执行SQL】\r\n{UtilMethods.GetNativeSql(sql, pars)}\r\n"; var originColor = Console.ForegroundColor; if (sql.StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) Console.ForegroundColor = ConsoleColor.Green; @@ -132,7 +132,7 @@ public static class SqlSugarSetup db.Aop.OnError = ex => { if (ex.Parametres == null) return; - var log = $"【{DateTime.Now}——错误SQL】\r\n{UtilMethods.GetNativeSql(ex.Sql, (SugarParameter[])ex.Parametres)}\r\n"; + var log = $"【{DateTime.UtcNow}——错误SQL】\r\n{UtilMethods.GetNativeSql(ex.Sql, (SugarParameter[])ex.Parametres)}\r\n"; Log.Error(log, ex); App.PrintToMiniProfiler("SqlSugar", "Error", log); }; @@ -152,7 +152,7 @@ public static class SqlSugarSetup var fileName = db.Ado.SqlStackTrace.FirstFileName; // 文件名 var fileLine = db.Ado.SqlStackTrace.FirstLine; // 行号 var firstMethodName = db.Ado.SqlStackTrace.FirstMethodName; // 方法名 - var log = $"【{DateTime.Now}——超时SQL】\r\n【所在文件名】:{fileName}\r\n【代码行数】:{fileLine}\r\n【方法名】:{firstMethodName}\r\n" + $"【SQL语句】:{UtilMethods.GetNativeSql(sql, pars)}"; + var log = $"【{DateTime.UtcNow}——超时SQL】\r\n【所在文件名】:{fileName}\r\n【代码行数】:{fileLine}\r\n【方法名】:{firstMethodName}\r\n" + $"【SQL语句】:{UtilMethods.GetNativeSql(sql, pars)}"; Log.Warning(log); App.PrintToMiniProfiler("SqlSugar", "Slow", log); } @@ -174,7 +174,7 @@ public static class SqlSugarSetup // 若创建时间为空则赋值当前时间 else if (entityInfo.PropertyName == nameof(EntityBase.CreateTime) && entityInfo.EntityColumnInfo.PropertyInfo.GetValue(entityInfo.EntityValue) == null) { - entityInfo.SetValue(DateTime.Now); + entityInfo.SetValue(DateTime.UtcNow); } // 若当前用户非空(web线程时) if (App.User != null) @@ -211,7 +211,7 @@ public static class SqlSugarSetup else if (entityInfo.OperationType == DataFilterType.UpdateByObject) { if (entityInfo.PropertyName == nameof(EntityBase.UpdateTime)) - entityInfo.SetValue(DateTime.Now); + entityInfo.SetValue(DateTime.UtcNow); else if (entityInfo.PropertyName == nameof(EntityBase.UpdateUserId)) entityInfo.SetValue(App.User?.FindFirst(ClaimConst.UserId)?.Value); else if (entityInfo.PropertyName == nameof(EntityBase.UpdateUserName)) @@ -266,7 +266,7 @@ public static class SqlSugarSetup var logDb = ITenant.IsAnyConnection(SqlSugarConst.LogConfigId) ? ITenant.GetConnectionScope(SqlSugarConst.LogConfigId) : db; await logDb.CopyNew().Insertable(logDiff).ExecuteCommandAsync(); Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine(DateTime.Now + $"\r\n*****开始差异日志*****\r\n{Environment.NewLine}{JSON.Serialize(logDiff)}{Environment.NewLine}*****结束差异日志*****\r\n"); + Console.WriteLine(DateTime.UtcNow + $"\r\n*****开始差异日志*****\r\n{Environment.NewLine}{JSON.Serialize(logDiff)}{Environment.NewLine}*****结束差异日志*****\r\n"); }; } diff --git a/Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs b/Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs index dc2a8979..4a6e6f67 100644 --- a/Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs +++ b/Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs @@ -116,7 +116,7 @@ public class AdminResultProvider : IUnifyResultProvider Result = data, Type = succeeded ? "success" : "error", Extras = UnifyContext.Take(), - Time = DateTime.Now + Time = DateTime.UtcNow }; } } diff --git a/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs b/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs index 60e6940b..9fad8c3d 100644 --- a/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs +++ b/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs @@ -198,19 +198,19 @@ public static class ComputerUtil //返回:1705379131 //使用date格式化即可 string output = ShellUtil.Bash("date -r $(sysctl -n kern.boottime | awk '{print $4}' | tr -d ',') +\"%Y-%m-%d %H:%M:%S\"").Trim(); - runTime = DateTimeUtil.FormatTime((DateTime.Now - output.ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong()); + runTime = DateTimeUtil.FormatTime((DateTime.UtcNow - output.ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong()); } else if (IsUnix()) { string output = ShellUtil.Bash("uptime -s").Trim(); - runTime = DateTimeUtil.FormatTime((DateTime.Now - output.ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong()); + runTime = DateTimeUtil.FormatTime((DateTime.UtcNow - output.ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong()); } else { string output = ShellUtil.Cmd("wmic", "OS get LastBootUpTime/Value"); string[] outputArr = output.Split('=', (char)StringSplitOptions.RemoveEmptyEntries); if (outputArr.Length == 2) - runTime = DateTimeUtil.FormatTime((DateTime.Now - outputArr[1].Split('.')[0].ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong()); + runTime = DateTimeUtil.FormatTime((DateTime.UtcNow - outputArr[1].Split('.')[0].ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong()); } return runTime; } diff --git a/Admin.NET/Admin.NET.Core/Util/DateTimeUtil.cs b/Admin.NET/Admin.NET.Core/Util/DateTimeUtil.cs index 070f2abb..4662e9fa 100644 --- a/Admin.NET/Admin.NET.Core/Util/DateTimeUtil.cs +++ b/Admin.NET/Admin.NET.Core/Util/DateTimeUtil.cs @@ -17,9 +17,9 @@ public class DateTimeUtil public static DateTime GetBeginTime(DateTime? dateTime, int days = 0) { if (dateTime == DateTime.MinValue || dateTime == null) - return DateTime.Now.AddDays(days); + return DateTime.UtcNow.AddDays(days); - return dateTime ?? DateTime.Now; + return dateTime ?? DateTime.UtcNow; } /// @@ -122,7 +122,7 @@ public class DateTimeUtil { if (dt == null) return string.Empty; - if (dt.Value.Year == DateTime.Now.Year) + if (dt.Value.Year == DateTime.UtcNow.Year) return dt.Value.ToString("MM-dd HH:mm"); else return dt.Value.ToString("yyyy-MM-dd HH:mm"); diff --git a/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/ApprovalFlow/ApprovalFlowService.cs b/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/ApprovalFlow/ApprovalFlowService.cs index 53748fdb..ef133c4c 100644 --- a/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/ApprovalFlow/ApprovalFlowService.cs +++ b/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/ApprovalFlow/ApprovalFlowService.cs @@ -117,9 +117,9 @@ public class ApprovalFlowService : IDynamicApiController, ITransient /// private async Task LastCode(string prefix) { - var today = DateTime.Now.Date; + var today = DateTime.UtcNow.Date; var count = await _approvalFlowRep.AsQueryable().Where(u => u.CreateTime >= today).CountAsync(); - return prefix + DateTime.Now.ToString("yyMMdd") + string.Format("{0:d2}", count + 1); + return prefix + DateTime.UtcNow.ToString("yyMMdd") + string.Format("{0:d2}", count + 1); } [HttpGet] diff --git a/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/SysApproval/SysApprovalService.cs b/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/SysApproval/SysApprovalService.cs index 11c8d88b..c3bf93d7 100644 --- a/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/SysApproval/SysApprovalService.cs +++ b/Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Service/SysApproval/SysApprovalService.cs @@ -48,7 +48,7 @@ public class SysApprovalService : ITransient var approvalFlow = new ApprovalFlowRecord { FormName = funcName, - CreateTime = DateTime.Now, + CreateTime = DateTime.UtcNow, }; // 判断是否需要审批 @@ -59,7 +59,7 @@ public class SysApprovalService : ITransient FlowId = approvalFlow.Id, FormName = funcName, FormType = typeName, - CreateTime = DateTime.Now, + CreateTime = DateTime.UtcNow, }; // 判断是否需要审批 diff --git a/Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Job/SyncDingTalkUserJob.cs b/Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Job/SyncDingTalkUserJob.cs index e4f7599d..d66df4c8 100644 --- a/Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Job/SyncDingTalkUserJob.cs +++ b/Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Job/SyncDingTalkUserJob.cs @@ -167,7 +167,7 @@ public class SyncDingTalkUserJob : IJob var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Blue; - Console.WriteLine("【" + DateTime.Now + "】同步钉钉用户"); + Console.WriteLine("【" + DateTime.UtcNow + "】同步钉钉用户"); Console.ForegroundColor = originColor; } } \ No newline at end of file