.net Core 中DateTime在Linux Docker中与Windows时间不一致
最近写了一个.net core项目,部署到CentOS并在docker上运行的时候,发现DateTime.Now获取的时间与Windows不一致(定时执行的任务,晚了8个小时),在Windows中可以正确的获得本地时间,而在Linxu CentOS 的Docker环境中获取的时间少了8个小时。通过Linxu命令查看本机时间,本地时间正确,但.net core在Docker运行获取时间依然是少8个小时。猜测可能是时区的问题,然后就找到了NodaTime的一个库进行获取统一时区的时间,这下在Linxu CentOS的Docker环境上获取的时间就与Windows中保持了一致。
新增一个DateTime扩展方法:
public class TimeUtil
{
public static DateTime GetCstDateTime()
{
Instant now = SystemClock.Instance.GetCurrentInstant();
var shanghaiZone = DateTimeZoneProviders.Tzdb["Asia/Shanghai"];
return now.InZone(shanghaiZone).ToDateTimeUnspecified();
}
}
public static class DateTimeExtentions
{
public static DateTime ToCstTime(this DateTime time)
{
return TimeUtil.GetCstDateTime();
}
}
在程序中获取时间都通过如下方法,即可实现在Windows和Linux保持统一:
DateTime.Now.ToCstTime();
除了以上方式之外,可以将Linxu时间和Docker容器进行同步。具体详情,请参考。docker容器与Linux主机环境获取时间不一致
原文链接:https://www.skyfinder.cc/2018/10/01/dotnetcoredatetimenotunified/
.net Core 中DateTime在Linux Docker中与Windows时间不一致的更多相关文章
- 2017-03-04 dotnet core网站发布到Linux系统中
今天开始学习dotnet core的开发,距离Visual Stuio 2017正式版的发布,也就是VS20周岁的生日还有三天,在我的电脑上安装的是VS2017 Enterprise RC版, 在VS ...
- .NET Core Web 应用部署到 Docker 中运行
环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...
- Asp.Net Core WebAPI+PostgreSQL部署在Docker中
PostgreSQL是一个功能强大的开源数据库系统.它支持了大多数的SQL:2008标准的数据类型,包括整型.数值值.布尔型.字节型.字符型.日期型.时间间隔型和时间型,它也支持存储二进制的大对像, ...
- 03 .NET CORE 2.2 使用OCELOT -- Docker中的Consul
部署consul-docker镜像 先搜索consul的docker镜像 docker search consul 然后选择了第一个,也就是官方镜像 下载镜像 docker pull consul 然 ...
- .NET Core 图片操作在 Linux/Docker 下的坑
一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...
- maven项目引入外部第三方jar包,引入、本地编译、第三方jar一起打到jar中、在linux机器中解决classnotfound(配置classpath),笔记整理。
文章目录 引用的第三方jar的目录结构(示例) 引入第三方jar进行dependency使项目内能import 本地编译 第三方jar一起打到jar中 在linux机器中解决classnotfound ...
- DOTNET CORE DATETIME在LINUX与WINDOWS时间不一致
.net core项目,部署到CentOS上的时候,发现DateTime.Now获取的时间与Windows不一致,主要是时区不一致. static void Main(string[] args) { ...
- linux时间与Windows时间不一致的解决
一.首先要弄清几个概念:1. “系统时间”与“硬件时间” 系统时间: 一般说来就是我们执行 date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间. ...
- [Linux之旅一] .NET Core 2.2部署到Docker中
第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图: 在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Doc ...
随机推荐
- phpmyadmin教程
phpmyadmin教程 管理页进入phpmyadmin 打开C:\wamp\apps\phpmyadmin3.5.1下的配置文件:config.inc 修改密码创建与修改数据库.数据表 字段类型 I ...
- IDEA中看Flink 1.9源码时报Sources not found for: org.apache.flink:flink-shaded-hadoop-2:2.4.1-7.0
1.场景 在阅读Flink 1.9源码时,个别类如YarnClientImpl.java只能查看.class文件,想查看对应的.java source文件,点击Download source时,报So ...
- HTML&CSS基础-伪元素选择器
HTML&CSS基础-伪元素选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源代码 <!DOCTYPE html> <html> ...
- 小顶堆---非递归C语言来一发
#include <stdio.h> #include <stdlib.h> #define HEAP_SIZE 100 #define HEAP_FULL_VALUE -10 ...
- 使用BERT模型生成token级向量
本文默认读者有一定的Transformer基础,如果没有,请先稍作学习Transormer以及BERT. 相信网上有很多方法可以生成BERT向量,最有代表性的一个就是bert as service,用 ...
- Java并发(九)【转载】不可不说的Java“锁”事
转载自 美团技术团队,原文链接 不可不说的Java“锁”事 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率.本文旨在对锁相关源码(本文中的源码来自JDK ...
- 《少年先疯队》第八次团队作业:Alpha冲刺第五天
前言 第五天冲刺会议 时间:2019.6.18 地点:宿舍 5.1 今日完成任务情况以及遇到的问题. 5.1.1今日完成任务情况 姚玉婷:会员查询消费记录功能的实现 马丽莎:昨天 ...
- vscode beautiful配置
在工作目录下建立.jsbeautifyrc文件 官方文档 { "brace_style": "none,preserve-inline", "inde ...
- go语言-流程控制--if
一.基本语法介绍 表达式后一定要带{},表达式不需要带(),在if中支持直接定义一个变量,如a:=2 if 表达式{ 代码执行块 }else if{ 代码执行块 }else{ 代码执行块 } 案例1. ...
- 多线程执行sql报错处理
pymysql多线程访问数据库报错:Packet sequence number wrong - got 7 expected 2 原文:https://www.cnblogs.com/heiao10 ...