相关疑难解决方法(0)

夏令时和时区最佳实践

我希望能够将这个问题及其答案作为处理夏令时的权威指南,特别是处理实际的变更问题.

如果您有任何要添加的内容,请执行此操作

许多系统依赖于保持准确的时间,问题在于由于夏令时改变时间 - 向前或向后移动时钟.

例如,在订单获取系统中有一个业务规则取决于订单的时间 - 如果时钟发生变化,规则可能不那么明确.如何保持订单的时间?当然有无数的场景 - 这只是一个说明性的场景.

  • 你是如何处理夏令时问题的?
  • 您的解决方案中有哪些假设?(在这里寻找背景)

同样重要的是,如果不是这样的话:

  • 你尝试了哪些不起作用?
  • 为什么不起作用?

我会对编程,操作系统,数据持久性和该问题的其他相关方面感兴趣.

一般答案很好,但我也希望看到细节,特别是如果它们只在一个平台上可用.

timezone datetime utc datetimeoffset dst

2021
推荐指数
20
解决办法
40万
查看次数

如何将JavaScript日期初始化为特定时区

我将特定时区的日期时间作为字符串,我想将其转换为本地时间.但是,我不知道如何在Date对象中设置时区.

例如,Feb 28 2013 7:00 PM ET,我可以

var mydate = new Date();
mydate.setFullYear(2013);
mydate.setMonth(02);
mydate.setDate(28);
mydate.setHours(7);
mydate.setMinutes(00);  
Run Code Online (Sandbox Code Playgroud)

据我所知,我可以设置UTC时间或本地时间.但是,我如何在另一个时区设置时间?

我试图使用添加/减去UTC的偏移量,但我不知道如何应对夏令时.我不确定我是否正朝着正确的方向前进.

如何在javascript中将时间从不同的时区转换为当地时间?

javascript timezone

176
推荐指数
8
解决办法
23万
查看次数

实体框架DateTime和UTC

是否有可能拥有实体框架(我目前使用的是Code First Approach with CTP5)将所有DateTime值存储为数据库中的UTC?

或者是否有一种方法可以在映射中指定它,例如在last_login列的这一个中:

modelBuilder.Entity<User>().Property(x => x.Id).HasColumnName("id");
modelBuilder.Entity<User>().Property(x => x.IsAdmin).HasColumnName("admin");
modelBuilder.Entity<User>().Property(x => x.IsEnabled).HasColumnName("enabled");
modelBuilder.Entity<User>().Property(x => x.PasswordHash).HasColumnName("password_hash");
modelBuilder.Entity<User>().Property(x => x.LastLogin).HasColumnName("last_login");
Run Code Online (Sandbox Code Playgroud)

c# datetime entity-framework utc code-first

87
推荐指数
10
解决办法
5万
查看次数

存储DateTime(UTC)与存储DateTimeOffset

我通常有一个"拦截器",它在从/向数据库读取/写入之前进行DateTime转换(从UTC到本地时间,从本地时间到UTC),因此我可以DateTime.Now在整个系统中使用(派生和比较)而不用担心关于时区.

关于计算机之间的序列化和移动数据,没有必要打扰,因为日期时间始终是UTC.

我应该继续以UTC格式存储我的日期(SQL 2008 - datetime)还是应该使用DateTimeOffset(SQL 2008-datetimeoffset)存储它?

数据库中的UTC日期(日期时间类型)已经工作并且已知很长时间了,为什么要更改它?有什么好处?

我已经看过像这样的文章了,但我并不是100%相信.有什么想法吗?

sql t-sql sql-server datetimeoffset sql-server-2008

87
推荐指数
3
解决办法
6万
查看次数

什么时候你会喜欢DateTime Over DateTimeOffset

几个月前,我被介绍到新型DateTimeOffset,很高兴DateTime关于时区的缺陷终于得到了解决.

但是,我想知道使用这种新类型是否有任何开销或问题.

我在一个多语言环境的Web应用程序上工作.有没有人知道任何可以影响我的东西,只是在我的所有日​​期/时间工作中使用它?这里有滥用的窗口吗?

参考:DateTimeOffset:Justin Van Patten在.NET 3.5中的一个新的DateTime结构

.net datetime datetimeoffset

48
推荐指数
1
解决办法
1万
查看次数

SQL中DateTime字段的时间部分

如何在SQL中提取DateTime字段的时间部分?对于我的项目,无论日期是什么,我都必须返回DateTime字段的时间戳为5pm的数据

sql t-sql sql-server datetime sql-server-2008

45
推荐指数
6
解决办法
18万
查看次数

安全地比较本地和通用日期时间

我刚刚注意到与DateTime比较似乎是一个荒谬的缺陷.

DateTime d = DateTime.Now;
DateTime dUtc = d.ToUniversalTime();

d == dUtc; // false
d.Equals(dUtc); //false
DateTime.Compare(d, dUtc) == 0; // false
Run Code Online (Sandbox Code Playgroud)

似乎DateTimes上的所有比较操作都无法执行任何类型的智能转换(如果一个是DateTimeKind.Local,一个是DateTimeKind.UTC).除了始终将比较中涉及的两者都转换为utc时间之外,这是一种更好的方法来可靠地比较DateTimes吗?

.net c# .net-4.0 datetime-comparison

40
推荐指数
2
解决办法
1万
查看次数

'DateTime'和'DateTimeOffset'之间的区别

a DateTime和DateTimeOffset对象有什么区别?

什么时候应该使用每一个?

在可能更改服务器区域的Web应用程序中,存储日期和时间.哪一个更好,还是有其他建议?

c# datetime datetimeoffset

37
推荐指数
2
解决办法
2万
查看次数

DateTime.Now和Culture/Timezone特定

我们的应用程序旨在处理来自不同地理位置的用户.

我们无法检测当前最终用户当地时间和时区对其进行操作的情况.他们选择不同的文化,如sv-se,en-us,ta-In甚至他们从欧洲/伦敦时区访问..

我们在美国托管服务器托管它,应用程序用户来自 Norway/Denmark/Sweden/UK/USA/India

问题是我们用来DateTime.Now存储记录创建/更新日期等.

由于服务器在美国运行,所有用户数据都保存为美国时间:(

在SO中进行研究后,我们决定将所有历史日期存储在DB中 DateTime.UtcNow

问题:

在此输入图像描述

创建了一条记录29 Dec 2013, 3:15 P.M Swedish time.

 public ActionResult Save(BookingViewModel model)
    {
        Booking booking = new Booking();
        booking.BookingDateTime = model.BookingDateTime; //10 Jan 2014 2:00 P.M
        booking.Name = model.Name;
        booking.CurrentUserId = (User)Session["currentUser"].UserId;
        //USA Server runs in Pacific Time Zone, UTC-08:00
        booking.CreatedDateTime = DateTime.UtcNow; //29 Dec 2013, 6:15 A.M
        BookingRepository.Save(booking);
        return View("Index");
    }
Run Code Online (Sandbox Code Playgroud)

我们希望向在India/Sweden/USA登录的用户显示相同的历史记录时间.

截至目前,我们正在使用当前文化用户登录并从配置文件中选择时区并使用TimeZoneInfo类进行转换

<appSettings>
    <add key="sv-se" value="W. Europe Standard Time" />
    <add key="ta-IN" value="India Standard …
Run Code Online (Sandbox Code Playgroud)

c# asp.net timezone datetime nodatime

27
推荐指数
3
解决办法
4万
查看次数

如何在c#中将日期时间转换为特定时区?

我需要帮助将a转换DateTime为特定的时区.我下面的内容不能正常工作.

gmTime = 03/02/2013 1:00:00 AM

 TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
 var time = timeZoneInfo.ConvertTime(gmTime, timeZone);
Run Code Online (Sandbox Code Playgroud)

当我调试time应该在03/01/2013 8:00:00 PM应用区域时的值时,它会返回为03/02/2013 1:00:00 AM.

如果我这样做,time.ToLocalTime()那么我得到正确的值.但是,我需要转换time为不同的时区.

c#

15
推荐指数
2
解决办法
2万
查看次数