如何从DateTimeOffset对象中提取日期?我认为Date属性只会返回日期部分。但是,我不断获得整个日期时间,即7/17/2014 12:00:00 AM -04:00。我只想获取日期部分7/17/2014。
这是我的代码。
Func<DataRow, string, DateTimeOffset?> getFieldNullableDate = (row, field) =>
{
if (!string.IsNullOrWhiteSpace((row[field] ?? string.Empty).ToString()))
return DateTimeOffset.Parse(row[field].ToString()).Date;
else
return null;
};
Run Code Online (Sandbox Code Playgroud) 在 SQL 服务器中,我有一列存储这种格式的日期:
2017-06-22T00:43:15+0300
作为字符串。
我想要做的是将这些字符串转换为实际的 datatimeoffset 数据,以便将它们作为日期处理。
到目前为止,我已经找到了多个用于从 datetimeoffset 转换为其他时间戳格式的函数,但这些函数都没有引用字符串。
https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetimeoffset-transact-sql
在 postgresql 数据库上出现完全相同的问题。到目前为止我设法实现的最好的只是截断时区并将字符串的其余部分转换为时间戳。理想情况下,我不想使用这种有损转换。
使用 Kotlin 等高级语言调用时Timestamp with Time Zone,需要提供postgresql数据类型OffsetDateTime。我找不到支持 Epoch 到 OffsetDateTime 转换的直接方法。
我正在解决一个问题,我需要获取另一个时区的当前日期和时间。我不知道我的代码将在哪个时区运行,并且它需要在 Windows 和 Linux 机器上运行。
我还没有找到任何方法可以做到这一点。有任何想法吗?
(PS:我特别需要找到瑞典的时间,包括代码可能运行的任意时区的夏令时)。
我正在研究使用SQL Server 2008的datetimeoffset.根据MSDN文章,时区偏移范围为-14:00到+14:00.我可以理解每个方向从UTC开始12小时,每个时区一小时.我想我理解每个方向13个小时,夏令时.我只是不打14个小时?
我有一台服务器设置为EST,我想知道我需要做什么来创建一个DateTimeOffset设置为当天午夜但在不同的时区?比如PST?
希望有人注意到我遇到问题的原因是什么.
对于所有其他时区,例如"Europe/Helsinki",下面的偏移计算返回正确的值,但由于某种原因,我得到'Etc/GMT + 2'样式时区的负值,反之亦然(例如,对于Etc/GMT-2,我得到正值,7200).
$dateTimeZone = new DateTimeZone('Etc/GMT+2');
echo $dateTimeZone->getOffset(new DateTime("now", new DateTimezone( 'UTC' )));
Run Code Online (Sandbox Code Playgroud)
预期:7200结果:-7200
如何计算可空的DateTimeOffset之间的时间?到DateTimeOffset.Now?
我需要像"x day y hours ago"这样的结果
我开始做这样的事情.
var creationTime = //A nullable DateTimeOffset on Database
var difference = DateTimeOffset.Now.Subtract(creationTime);
Run Code Online (Sandbox Code Playgroud)
但由于creationTime是一个可以为空的时间,它给了我一个错误,我无法找到差异.
在我们的ASP.NET MVC 5应用程序中,我们拥有带有时区ID(IANA)的用户配置文件.
public class User
{
public int Id { get; set; }
public string TimeZoneId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
任务是在当地时间早上6点向所有用户发送电子邮件.我们的计划是每小时向所有时区发送电子邮件,当地时间是当时时间早上6点(根据服务器的UTC时间计算).
由于我们只有时区ID,我希望得到相应的时区ID,比方说,偏移-4:00:00 - 考虑到DST.
string[] timezoneIds;
Run Code Online (Sandbox Code Playgroud)
然后,我可以像这样查询我的数据库:
db.Users.Where(x => timezoneIds.Contains(x.TimeZoneId));
Run Code Online (Sandbox Code Playgroud)
我的问题显然是,这是一个体面的想法,还是我不知道这个问题的最佳做法?
谢谢.
我一直在尝试DateTimeOffset在代码中获取结构的大小,以便我可以计算父对象的大小.问题是sizeof操作员和Marshal.SizeOf功能都不能用于此目的.
sizeof将无法工作,因为我必须使用unsafe标志进行编译,而这个功能还不足以证明这一点.Marshal.SizeOf引发异常:
类型'System.DateTimeOffset'不能作为非托管结构封送; 不能计算有意义的大小或偏移量.
我已经放弃尝试计算像这样的结构的大小,因为每一行攻击/博客文章都会出现一个或另一个错误.
有人可以告诉我64位Azure Web服务器上DateTimeOffset的平均大小是多少?
datetimeoffset ×10
c# ×5
datetime ×4
postgresql ×2
sql-server ×2
timezone ×2
.net ×1
.net-core ×1
asp.net-mvc ×1
epoch ×1
jooq ×1
kotlin ×1
marshalling ×1
memory ×1
nodatime ×1
nullable ×1
php ×1
sizeof ×1