Как я использую времена GMT в postgresql?

Дополнительная подсказка для ЯДРА СЕТИ ASP:

Интерфейс:

public interface IViewRenderer
{
  Task<string> RenderAsync<TModel>(Controller controller, string name, TModel model);
}

Реализация:

public class ViewRenderer : IViewRenderer
{
  private readonly IRazorViewEngine viewEngine;

  public ViewRenderer(IRazorViewEngine viewEngine) => this.viewEngine = viewEngine;

  public async Task<string> RenderAsync<TModel>(Controller controller, string name, TModel model)
  {
    ViewEngineResult viewEngineResult = this.viewEngine.FindView(controller.ControllerContext, name, false);

    if (!viewEngineResult.Success)
    {
      throw new InvalidOperationException(string.Format("Could not find view: {0}", name));
    }

    IView view = viewEngineResult.View;
    controller.ViewData.Model = model;

    await using var writer = new StringWriter();
    var viewContext = new ViewContext(
       controller.ControllerContext,
       view,
       controller.ViewData,
       controller.TempData,
       writer,
       new HtmlHelperOptions());

       await view.RenderAsync(viewContext);

       return writer.ToString();
  }
}

Регистрация в Startup.cs

...
 services.AddSingleton<IViewRenderer, ViewRenderer>();
...

И использование в контроллере:

public MyController: Controller
{
  private readonly IViewRenderer renderer;
  public MyController(IViewRendere renderer) => this.renderer = renderer;
  public async Task<IActionResult> MyViewTest
  {
    var view = await this.renderer.RenderAsync(this, "MyView", model);
    return new OkObjectResult(view);
  }
}
15
задан Adam 4 September 2009 в 17:46
поделиться

1 ответ

Начать здесь - раздел 8.5.3. « Часовые пояса » из документации.

Разница между CURRENT_TIMESTAMP и LOCALTIMESTAMP заключается в типе результата - первый возвращает «метку времени с часовым поясом», а второй - « timestamp ":

milen=> select CURRENT_TIMESTAMP;
              now
-------------------------------
 2009-09-05 01:21:37.595704+03
(1 row)

milen=> select LOCALTIMESTAMP;
         timestamp
----------------------------
 2009-09-05 01:21:41.956355
(1 row)

Другое дело, в каком часовом поясе вы хотите видеть текущее время. В этом случае важен часовой пояс по умолчанию (который можно установить несколькими способами, все описано в разделе, ссылка на который приведена выше). Также вы можете использовать «AT TIME ZONE» в запросе, чтобы получить текущее время в определенном часовом поясе без «возни» с настройкой «часового пояса»:

milen=> select CURRENT_TIMESTAMP AT TIME ZONE 'UTC';
          timezone
----------------------------
 2009-09-04 22:21:44.418236
(1 row)
33
ответ дан 1 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: