标签: timespan

从包括格式的字符串解析TimeSpan

我敢肯定这一定很简单,但我无法弄清楚如何在Google中正确地说出来......

我有一个包含字段的配置:

TimeToPoll="1d"
Run Code Online (Sandbox Code Playgroud)

现在,我想要做的事:

TimeSpan.Parse(TimeToPoll);
Run Code Online (Sandbox Code Playgroud)

返回一天的时间跨度.

在C#中

编辑:我在寻找它允许解析"一维"以及"1"或"一年"等等.这是可能的方法是什么?

含义:

     "1d" parses to {1.00:00:00}
     "1h" parses to {0.01:00:00}
     "1m" parses to {0.00:01:00}
     "1s" parses to {0.00:00:01}
Run Code Online (Sandbox Code Playgroud)

.net c# parsing timespan

5
推荐指数
2
解决办法
2691
查看次数

将小数小时添加到时间跨度

我有一个Decimal值表示一个时间间隔内的小时数.

现在我需要将此值加总为a TimeSpan,但我找不到有效的方法来执行此操作.

我现在的解决方案是做这样的事情:

myTimeSpan + new TimeSpan(0, 0, Math.Abs(decimalHours * 3600))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决我的问题?

.net c# timespan .net-3.5

5
推荐指数
1
解决办法
3254
查看次数

将 TimeSpan 格式化为时区偏移量

如何将TimeSpan对象格式化为看起来像时区偏移量,如下所示:

+0700
Run Code Online (Sandbox Code Playgroud)

或者

-0600
Run Code Online (Sandbox Code Playgroud)

我使用GetUtcOffset来获取偏移量,它可以工作,但它返回一个 TimeSpan 对象。

c# timezone timespan

5
推荐指数
1
解决办法
3595
查看次数

从"jira notation"中的时间字符串中提取分钟

我试图从"jira time notation"输入的用户输入中提取分钟数.

例如,我想实现以下结果

  • 输入:"30m"/输出:30
  • 输入:"1h 20m"/输出:80
  • 输入:"3h"/输出180

从研究中,我发现TimeSpan.ParseExact,但我无法弄清楚如何使用它来实现我的需要.

非常感谢所有的帮助.

我的代码到目前为止:

public static int TextToMins(string TimeText)
    {
        CultureInfo culture = new CultureInfo("en-IE");
        string[] formats = { "What goes here?" };
        TimeSpan ts = TimeSpan.ParseExact(TimeText.Trim().ToLower(), formats, culture);
        return Convert.ToInt32(ts.TotalMinutes);
    }
Run Code Online (Sandbox Code Playgroud)

c# timespan jira

5
推荐指数
1
解决办法
917
查看次数

如何将字符串中的小时、分钟和秒解析为 TimeSpan 对象?

我通过查询字符串传递一个字符串作为时间单位。但是,当我尝试将字符串解析为时间跨度对象时,我得到了一个System.FormatException' occurred in mscorlib.ni.dll but was not handled in user code我收集的信息,这意味着我格式化要解析的字符串的方式存在问题。

            if (NavigationContext.QueryString.ContainsKey("workTimeSpanPkr"))
            {
                testString = NavigationContext.QueryString["workTimeSpanPkr"];
                //Assign text box string value to a test time span variable.
                 testTm = TimeSpan.ParseExact(testString, @"hh\ \:\ mm\ \:\ ss", CultureInfo.InvariantCulture);

            }
Run Code Online (Sandbox Code Playgroud)

当我通过调试器运行它时传递​​的字符串 testString是:“00:15:04”``

有谁知道解析小时、分钟和秒的正确格式?

这是我试图解析的值以及我用来实现此目的的代码:

格式异常

工作字符串的值

c# parsing timespan string-formatting

5
推荐指数
1
解决办法
5613
查看次数

如何使用@Model(TimeSpan)在剃刀中使用三元运算符?

我试图在这段代码中使用三元运算符,其Model.FirstTechSupportAssigneeElapseTime类型为TimeSpan?:

<dt>Assigned In</dt>
<dd> 
@if (@Model.FirstTechSupportAssigneeElapseTime == null)
     { @:N/A } 
else 
     { @Model.FirstTechSupportAssigneeElapseTime } 
</dd>
Run Code Online (Sandbox Code Playgroud)

我试图实现三元运算符,但我失败了,@的处处让我感到困惑.在这种情况下,是否可以拥有三元运算符?

谢谢.

c# asp.net timespan ternary-operator razor

5
推荐指数
1
解决办法
9109
查看次数

Pandas 中两个时间戳之间的差异

我有以下两个时间列,“Time1”和“Time2”。我必须计算 Pandas 中的“差异”列,即 (Time2-Time1):

Time1         Time2                 Difference
8:59:45       9:27:30               -1 days +23:27:45
9:52:29       10:08:54              -1 days +23:16:26
8:07:15       8:07:53               00:00:38
Run Code Online (Sandbox Code Playgroud)

当 Time1 和 Time2 在不同的时间时,我得到的结果为“-1 days +”。我想要的前两个值的输出如下:

Time1         Time2                 Difference
8:59:45       9:27:30               00:27:45
9:52:29       10:08:54              00:16:26
Run Code Online (Sandbox Code Playgroud)

如何在 Pandas 中获得此输出?

两个时间值都在 'datetime64[ns]' dtype 中。

timespan datetime-format pandas

5
推荐指数
1
解决办法
9234
查看次数

在C#中减去UTC和非UTC DateTime

我假设当减去2个日期时间时,框架将检查他们的时区并进行适当的转换.

我用这段代码测试了它:

Console.WriteLine(DateTime.Now.ToUniversalTime() - DateTime.UtcNow.ToUniversalTime());
Console.WriteLine(DateTime.Now.ToUniversalTime() - DateTime.UtcNow);
Console.WriteLine(DateTime.Now - DateTime.UtcNow);
Run Code Online (Sandbox Code Playgroud)

输出:

-00:00:00.0020002
-00:00:00.0020001
01:59:59.9989999
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,DateTime.Now - DateTime.UtcNow没有自动进行适当的转换.与此同时,DateTime.UtcNow是一样的DateTime.UtcNow.ToUniversalTime(),所以很明显有一个指示时区的一些内部标志.

这是否正确,该框架是否自动执行适当的时区转换,即使信息已经存在?如果是这样,ToUniversalTime()对UTC和非UTC日期时间都应用安全,即已经UTC日期时间不会被错误地更正ToUniversalTime()

c# datetime timespan

5
推荐指数
1
解决办法
1232
查看次数

EF Core 3.1 中的时间跨度问题

我在使用 EF Core 3.1 查询 PostgreSQL 数据库时遇到问题。

查询很简单

var gamesQuery = this.dbContext.Games.Where(game => game.StartTime > DateTime.Now).AsQueryable();

// 'request.TimeFrom' is of type System.TimeSpan and the value is populated
gamesQuery = gamesQuery.Where(game => game.StartTime.TimeOfDay >= request.TimeFrom);

// .ToList()-int here causes the exception.
var games = gamesQuery.ToList();
Run Code Online (Sandbox Code Playgroud)

异常消息明确指出查询无法翻译:

“无法翻译 LINQ 表达式 'DbSet\r\n .Where(g => g.StartTime > DateTime.Now)\r\n .Where(g => g.StartTime.TimeOfDay >= __request_TimeFrom_0)'。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用来显式切换到客户端评估。请参阅https://go.microsoft.com /fwlink/?linkid=2101038了解更多信息。”

问题是相同的查询在 .NET Core 2.2 中运行良好。我还没有发现任何有关该问题的信息。

有人知道这个的原因是什么,还是我错过了什么?

c# postgresql timespan entity-framework-core

5
推荐指数
1
解决办法
3143
查看次数

Smalltalk中有没有检查两个时间跨度交集的功能?

Smalltalk 中是否有一个内置函数可以将两个时间跨度作为输入,并检查它们是否相交?

例如:两个时间跨度 2018/01/01-2018/01/05 和 2018/01/03-2018/01/10 确实相交,并且此函数应输出 true。

更新:我实现了以下方法:

checkIntersection: aTimespan
"returns true if two timespans overlap and false if not"
| start1 end1 start2 end2 |
start1 := self start.
end1 := self end.
start2 := aTimespan start.
end2 := aTimespan end.
(start1 = start2)
    ifTrue: [ ^true ].
(start1 = end2)
    ifTrue: [ ^true ].
(end1 = start2)
    ifTrue: [ ^true ].
(end1 = end2)
    ifTrue: [ ^true ].
(start2 < start1 and: [ (start1 < end2) ]) …
Run Code Online (Sandbox Code Playgroud)

timespan smalltalk

5
推荐指数
1
解决办法
105
查看次数