标签: datetimeoffset

夏令时和时区最佳实践

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

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

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

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

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

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

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

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

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

timezone datetime utc datetimeoffset dst

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

DateTime与DateTimeOffset

目前,我们有一种以TimeZone感知方式处理.net DateTimes的标准方法:每当我们生成一个DateTimeUTC时(例如使用DateTime.UtcNow),每当我们显示一个时,我们就会从UTC转换回用户的本地时间.

这工作正常,但我一直在阅读DateTimeOffset它如何捕获对象本身的本地和UTC时间.所以问题是,使用DateTimeOffsetvs我们已经做的事情有什么好处?

.net c# timezone datetime datetimeoffset

669
推荐指数
10
解决办法
19万
查看次数

存储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万
查看次数

如何使用TimeZoneInfo在夏令时期间获取当地时间?

我正在尝试使用DateTimeOffset来传达任何时区的特定时刻.我无法弄清楚如何使用TimeZoneInfo来处理夏令时.

var dt = DateTime.UtcNow;
Console.WriteLine(dt.ToLocalTime());

var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero);
Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset));
Run Code Online (Sandbox Code Playgroud)

打印出:

6/2/2010 4:37:19 PM
6/2/2010 3:37:19 PM -06:00

我在中央时区,而且我们目前正处于夏令时.我想把第二行读到:

6/2/2010 4:37:19 PM -05:00

BaseUtcOffset显然不会根据DST进行更改.

如何使用正确的偏移值获得正确的时间?

c# timezone datetimeoffset

78
推荐指数
4
解决办法
6万
查看次数

用PHP减去1天

我正在尝试从Drupal CMS中取出一个日期对象,减去一天并打印出两个日期.这就是我所拥有的

$date_raw = $messagenode->field_message_date[0]['value'];

print($date_raw);

//this gives me the following string: 2011-04-24T00:00:00

$date_object = date_create($date_raw);

$next_date_object = date_modify($date_object,'-1 day');

print('First Date ' . date_format($date_object,'Y-m-d'));

//this gives me the correctly formatted string '2011-04-24'

print('Next Date ' . date_format($next_date_object,'Y-m-d'));

//this gives me nothing. The output here is always blank
Run Code Online (Sandbox Code Playgroud)

所以我不明白为什么原始日期对象出来很好,但后来我试图创建一个额外的日期对象并通过减去一天来修改它,似乎我不能那样做.输出总是空白.

php datetimeoffset

71
推荐指数
9
解决办法
19万
查看次数

确定指定日期的Java夏令时(DST)是否处于活动状态

我有一个Java类,它接收位置的纬度/经度,并在夏令时开启和关闭时返回GMT偏移.我正在寻找一种简单的方法来确定Java当前日期是否为夏令时,因此我可以应用正确的偏移量.目前我只对美国时区执行此计算,但最终我还希望将其扩展到全球时区.

java datetimeoffset dst

59
推荐指数
3
解决办法
9万
查看次数

什么时候你会喜欢DateTime Over DateTimeOffset

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

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

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

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

.net datetime datetimeoffset

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

如何将Sql Server 2008 DateTimeOffset转换为DateTime

我希望将具有DATETIMEOFFSET字段的表转换为字段,DATETIME但通过注意偏移重新计算时间.实际上,这会将值转换为UTC.

例如.

CreatedOn: 2008-12-19 17:30:09.0000000 +11:00
Run Code Online (Sandbox Code Playgroud)

将被转换为

CreatedOn: 2008-12-19 06:30:09.0000000
Run Code Online (Sandbox Code Playgroud)

要么

CreatedOn: 2008-12-19 06:30:09.0000000 + 00:00 -- that's a `DATETIMEOFFSET`, but `UTC`.
Run Code Online (Sandbox Code Playgroud)

干杯:)

sql sql-server datetime datetimeoffset sql-server-2008

43
推荐指数
5
解决办法
8万
查看次数

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

a DateTimeDateTimeOffset对象有什么区别?

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

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

c# datetime datetimeoffset

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

在偏移前滚后加上一个月的偏移量,pandas超出了纳秒时间戳

我很困惑pandas如何用这些行吹出日期时间对象的界限:

import pandas as pd
BOMoffset = pd.tseries.offsets.MonthBegin()
# here some code sets the all_treatments dataframe and the newrowix, micolix, mocolix counters
all_treatments.iloc[newrowix,micolix] = BOMoffset.rollforward(all_treatments.iloc[i,micolix] + pd.tseries.offsets.DateOffset(months = x))
all_treatments.iloc[newrowix,mocolix] = BOMoffset.rollforward(all_treatments.iloc[newrowix,micolix]+ pd.tseries.offsets.DateOffset(months = 1))
Run Code Online (Sandbox Code Playgroud)

all_treatments.iloc[i,micolix]是一个日期时间设置pd.to_datetime(all_treatments['INDATUMA'], errors='coerce',format='%Y%m%d'),并且INDATUMA是格式中的日期信息20070125.

这个逻辑似乎适用于模拟数据(没有错误,日期有意义),所以目前我无法在我的整个数据失败时重现,并出现以下错误:

pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2262-05-01 00:00:00
Run Code Online (Sandbox Code Playgroud)

python datetime datetimeoffset pandas

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

标签 统计

datetimeoffset ×10

datetime ×6

c# ×3

timezone ×3

.net ×2

dst ×2

sql ×2

sql-server ×2

sql-server-2008 ×2

java ×1

pandas ×1

php ×1

python ×1

t-sql ×1

utc ×1