42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace FishGameHost.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("fishapi/[controller]")]
|
|
public class TimeController : ControllerBase
|
|
{
|
|
/// <summary>
|
|
/// 获取 FishApi 当前服务器时间,用于比较不同容器的系统时钟。
|
|
/// </summary>
|
|
[HttpGet("GetDateTime")]
|
|
[ResponseCache(NoStore = true, Location = ResponseCacheLocation.None)]
|
|
public IActionResult GetDateTime()
|
|
{
|
|
var dateTimeNow = DateTime.Now;
|
|
var dateTimeNowOffset = new DateTimeOffset(dateTimeNow);
|
|
var utcNow = DateTimeOffset.UtcNow;
|
|
var dateTimeNowTimestamp = dateTimeNowOffset.ToUnixTimeMilliseconds();
|
|
var utcNowTimestamp = utcNow.ToUnixTimeMilliseconds();
|
|
|
|
return Ok(new
|
|
{
|
|
code = 200,
|
|
data = new
|
|
{
|
|
service = "FishApi",
|
|
timestamp = utcNowTimestamp,
|
|
dateTimeNow = dateTimeNow.ToString("yyyy-MM-dd HH:mm:ss.fff"),
|
|
dateTimeNowKind = dateTimeNow.Kind.ToString(),
|
|
dateTimeNowTimestamp,
|
|
dateTimeOffsetUtcNow = utcNow.ToString("yyyy-MM-dd HH:mm:ss.fff zzz"),
|
|
dateTimeOffsetUtcNowTimestamp = utcNowTimestamp,
|
|
differenceMs = utcNowTimestamp - dateTimeNowTimestamp,
|
|
timeZone = TimeZoneInfo.Local.Id,
|
|
utcOffset = dateTimeNowOffset.Offset.ToString(),
|
|
container = Environment.MachineName
|
|
}
|
|
});
|
|
}
|
|
}
|