标签: datetimeoffset

使用javascript将日期和分钟添加到日期

我正在根据世界各地的时区建立会议日历.我的问题是如何在Javascript中从用户选择的日期添加或减去时区.

例如,在选择表单上,用户将从表单中选择日期:然后我会得到结果并转换为如下日期...

var ldSelectDate = new Date(document.form1.year.value,
           document.form1.month.value,
           document.form1.day.value);
Run Code Online (Sandbox Code Playgroud)

我想在这个对象中添加12午夜.

然后我读入一个XML,它在两个城市之间的字符串中获得时区差异:例如喀布尔的"+0430"或纽约的"-0400"(夏令时).这是基于GMT的.

然后我计算两个城市之间的时区差异:它将返回字符串"830".(我假设我必须将它作为日期对象返回?).我完成了这部分返回一个字符串.我正在使用字符串.

然后我想循环一整天的24小时,在午夜12点设置喀布尔然后循环.我很可能会想到这一点 - 也就是说,在循环时将日期设置为整个小时.

我的问题是从喀布尔无痛地减去"830",看看会议时间在纽约会是什么时候.

如果我可以从喀布尔时间减去小时和分钟,那将是理想的选择.我注意到有人在javascript中减去了小时数,但没有减去分钟数.顺便说一句,那篇文章对我不起作用.

我用没有分钟的字符串做了这个,但是我搞砸了会议记录.必须有一个更简单的方法.

我会采用本机Javascript或jQuery的解决方案.

同样,我需要在特定日期减去/添加小时和分钟的时区差异.

谢谢

javascript jquery datetimeoffset

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

为什么TryParseExact在这个例子中不起作用?

我不能做这个工作 - 总是返回False.

我在这里想念什么?

DateTimeOffset parsedDate;

if ( DateTimeOffset.TryParseExact("2012-10-31 23:59:59", "YYYY-MM-dd HH:mm:ss"
                      , CultureInfo.InvariantCulture
                      , DateTimeStyles.None, out parsedDate) == false)
{
   throw new ArgumentException("dateToPare", dateToParse);
}
Run Code Online (Sandbox Code Playgroud)

.net c# datetimeoffset tryparse

3
推荐指数
2
解决办法
6198
查看次数

在SQL Server 2008 R2和SQL Server Compact 4中存储日期/时间数据的最佳方法

我们正在使用SQL Server 2008 R2作为后端在C#4中开发一个应用程序.在极少数情况下,SQL Server Compact 4也用于断开连接的客户端.我们想知道将日期/时间数据存储到这些数据库中的最佳方法是什么,以便:

  1. 包含不同时间偏移(来自不同时区)的数据可以很好地共存.这意味着要进行排序和比较.
  2. SQL Server 2008 R2和SQL Server Compact 4中的数据可以无缝地来回传输; 这是次要要求,不应损害所选设计.

我们主要关注的是保留每个记录事件的本地时间,但不会失去比较和排序从不同时区生成的事件的能力,因此具有不同的时间偏移.

我们已经考虑了datetimeoffset数据类型,因为它存储时间偏移,因为它很好地映射到.NET DateTimeOffset.但是,SQL Server Compact 4不支持它.另一种方法是从数据库中删除偏移信息并使用简单的datetime数据类型,以便数据库中的每个数据都被标准化,并且Compact的问题更少.然而,这引入了在用户看到数据之前需要以某种方式重建偏移信息的问题.

所以我的问题是,是否有关于如何在SQL Server中存储日期/时间值的最佳实践或指南,考虑到我们需要处理不同的时区,并使2008 R2和Compact 4之间的互操作性变得简单尽可能?

谢谢.

timezone datetimeoffset sql-server-2008 sql-server-ce

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

如何判断它是否是英国的夏令时

我有以下代码,它应该返回60的偏移量(显示目前在英国,我们在英国夏令时 - 即比格林威治标准时间早60分钟):

var info = TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time");
DateTimeOffset localServerTime = DateTimeOffset.Now;
double off = localServerTime.Offset.TotalMinutes;
return off;
Run Code Online (Sandbox Code Playgroud)

但是,它返回0.

有人可以帮我解决这个问题吗?

.net c# datetimeoffset dst

3
推荐指数
1
解决办法
4279
查看次数

日期字符串到 OffsetDateTime

我正在将日期/日期时间字符串转换为OffsetDateTime并且我有日期时间格式,它可能具有这些值之一

yyyy-MM-dd, yyyy/MM/dd
Run Code Online (Sandbox Code Playgroud)

有时有或没有时间,我需要将其转换为OffsetDateTime.

我试过下面的代码

// for format yyyy-MM-dd
DateTimeFormatter DATE_FORMAT = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd")
                        .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
                        .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
                        .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
                        .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
                        .toFormatter();
Run Code Online (Sandbox Code Playgroud)

由于没有时间,我将其设置为默认值,但是当我尝试解析时

OffsetDateTime.parse("2016-06-06", DATE_FORMAT)
Run Code Online (Sandbox Code Playgroud)

它抛出错误就像

线程“main”中的异常 java.time.format.DateTimeParseException:无法解析文本“2016-06-06”:无法从 TemporalAccessor 获取 OffsetDateTime:{},ISO 解析为 java 类型的 2016-06-06T00:00 .time.format.Parsed 已解析

谁能帮我解决这个问题吗?

datetimeoffset datetime-parsing java-8 java-time

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

.NET 和 SQL Server - 日期时间或日期时间偏移量?

自从我使用 .NET 以来,我就一直在 .NET 和 SQL ServerDateTime数据类型中存储日期和时间数据。我最近意识到DateTimeOffset.NET 和 SQL Server 中存在这些类型。

DateTimeOffset类型现在是否应该成为我使用和存储时间的默认数据类型?

如果没有,我什么时候会使用一个?

.net c# sql-server datetime datetimeoffset

3
推荐指数
1
解决办法
3876
查看次数

将字符串转换为 DateTimeOffset 忽略时区

我创建了一个string 扩展方法,它将特定的转换stringDateTimeOffset. 我执行了以下方法:

public static DateTimeOffset? ConvertToDateTimeOffset(this string text)
{
    DateTimeOffset date;

    if (DateTimeOffset.TryParse(text, out date))
    {
        return date;
    }
    else
    {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

用这个字符串:

"2010-05-10".ConvertToDateTimeOffset()
Run Code Online (Sandbox Code Playgroud)

我想取回以下结果:

{2010. 05. 10. 0:00:00 +00:00}
Run Code Online (Sandbox Code Playgroud)

但我的执行方法调用的实际结果是(请注意+02:00):

{2010. 05. 10. 0:00:00 +02:00}
Run Code Online (Sandbox Code Playgroud)

我怎样才能消除这个时区问题

c# timezone datetimeoffset

3
推荐指数
1
解决办法
1568
查看次数

DateTimeFormatter.ISO_OFFSET_DATE_TIME 未按预期工作

基于此 Java 日期时间 - OffsetDateTime.format() 示例文章和DateTimeFormatter 的官方文档,我希望我的 OffsetDateTime 被序列化为自 UTC 以来2011-12-03T10:15:30+00:00偏移量的偏移量+00:00

我无法让 OffsetDateTime 使用偏移量进行渲染,它总是只使用“Z”祖鲁语进行渲染。我究竟做错了什么?

在此处输入图片说明

这是Spring Boot 2.0.0.RELEASE,正如您在屏幕截图中看到的,我在类路径上有以下模块并注册了 objectMapper,尽管我认为这不是相对的,因为这个问题似乎是直接的使用 DateTimeFormatter,我的对象映射器只是使用我提供的格式化程序。

它确实有影响,因为正如您在第二个屏幕截图中看到的那样,当我指定BASIC_ISO_FORMAT它确实会产生不同的结果。

我确实spring.jackson.date-format= com.fasterxml.jackson.databind.util.ISO8601DateFormat在我的 application.properties 中设置了这个属性,但据我所知,这对 OffsetDateTime 没有影响,它只支持旧版 java 中的遗留 Date 对象。顺便说一下,改变这一点似乎没有预期的影响。

任何帮助,将不胜感激。

使用 ISO_ZONED_DATE_TIME 格式... 使用 ISO_ZONED_DATE_TIME 格式

使用 BASIC_ISO_FORMAT ... 这确实有影响,所以我知道格式化程序正在做某事,我只是不清楚为什么 ISO_ZONED_DATE_TIME 没有按预期呈现。 使用 BASIC_ISO_FORMAT

 this.objectMapper = objectMapperBuilder.build()      
      .setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
      .disable(SerializationFeature.INDENT_OUTPUT)
      .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
      .disable(SerializationFeature.WRITE_DATES_WITH_ZONE_ID);

 SimpleModule simpleModule = new SimpleModule();
 simpleModule.addSerializer(OffsetDateTime.class, new JsonSerializer<OffsetDateTime>() {
        @Override
        public void serialize(OffsetDateTime offsetDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException …
Run Code Online (Sandbox Code Playgroud)

datetimeoffset datetime-format spring-boot

3
推荐指数
1
解决办法
7628
查看次数

使用 DateTimeOffset.TryParseExact 遇到 AM/PM 问题

我有一些代码想要测试有效时间,出于某种原因,它适用于 PM 的日期,但不适用于 AM。

所以我采用与这种格式相对应的格式:

2018/6/1 下午 12:00:00

然而,出于某种原因,当它是 PM 时,这很好用,但是当我用 AM 替换它时,它就坏了。我接受它命中的可接受格式的格式是:

M/d/yyyy HH:mm:ss tt

下面没有说它是假的:

      DateTimeOffset dateTimeResult;
        var acceptableFormats = new string[] {
                            "yyyy-MM-dd'T'HH:mm:ss.FFFK",
                            "M/d/yyyy HH:mm:ss",
                            "MM/dd/yyyy HH:mm:ss",
                            "M/d/yyyy HH:mm:ss tt",
                            "MM/dd/yyyy HH:mm:ss tt",
                            "yyyy-MM-dd' 'HH:mm:ss.FFFK",
                            "yyyy-MM-dd'T'HH:mm:ssK",
                            "yyyy-MM-dd' 'HH:mm:ssK",
                            "yyyy-MM-dd'T'HH:mm:ss",
                            "yyyy-MM-dd' 'HH:mm:ss",
                            "yyyy-MM-dd'T'HH:mm",
                            "yyyy-MM-dd' 'HH:mm",
                            "yyyy-MM-dd'T'HH",
                            "yyyy-MM-dd' 'HH",
                            "yyyy-MM-dd",
                            "yyyy-MM-dd",
                            "yyyyMMdd",
                            "MM/dd/yyyy",
                            "M/d/yyyy",
                            "yyyy-MM",
                            "yyyy" };
        DateTimeOffset dateTimeResult;
        var timeOffset = DateTimeOffset.TryParseExact("6/1/2018 12:00:00 AM", acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeResult);
Run Code Online (Sandbox Code Playgroud)

这个作品说的是真的:

      DateTimeOffset dateTimeResult;
        var acceptableFormats = new string[] { …
Run Code Online (Sandbox Code Playgroud)

c# datetimeoffset

3
推荐指数
1
解决办法
706
查看次数

什么是有效的 RFC1123 日期格式

我正在开发一项返回 expires 标头的服务。该服务将跨不同时区工作。所以我们需要一种方法来返回 GMT 以外的其他时区。

我知道 http 标头必须遵循 RFC1123 标准日期格式。所以服务返回日期如下 -

2019 年 3 月 1 日星期五 15:00:00 GMT

我需要的是以以下格式返回日期。

2019 年 3 月 1 日星期五 15:00:00 +0530

这是 RFC1123 日期格式的有效日期吗?

datetime http datetimeoffset datetime-format rfc1123

3
推荐指数
1
解决办法
8794
查看次数