C#库用于解析人类可读的时间段

17
有没有一个库可以将人类可读的时间段解析成.NET TimeSpan?
我需要一个能够解析以下字符串的东西:
30 days
1 week
5 hours

有这样的东西吗?也许自己编写不太难,但如果已经有现成的,那将会更容易!

我目前并不需要“30天、3小时、5分钟”之类的功能,只需要一个值就可以了,但这样也无妨!

3个回答

4
我曾经尝试过这个,当时我正在尝试解析器,因为我对它们一无所知,所以请不要期望质量。但你可以在这里找到代码:http://timestamper.codeplex.com/ 我有一段时间没有看它了,但我非常确定它可以做到你上面提到的所有事情。
编辑:
刚才注意到您希望返回一个时间跨度对象而不是日期时间。我提供的代码将返回相对于今天的DateTime,即:
“2天”将是:DateTime.Now.AddDays(2);
至少我认为是这样做的,但不能100%确认。如果是这种情况,你应该能够获得两个日期时间之间的时间跨度。

4
微软最近发布了nuget包和源代码,用于支持Azure中的语言服务(LUIS)的抽取器和解析器。您可以在此处找到它们:GitHub Repo。对于大多数项目来说,这可能是杀鸡焉用牛刀,但幸运的是,可以独立下载单独的包(例如DateTime包)。NuGet包回答了这个问题。请注意,保留了HTML标记。

这是一个真的很酷的库!谢谢你的分享! - undefined

1
我正在开发一个基于时间戳的Dotnet框架(和dotnet core)库。

从Nuget安装:HumanDateParser

用法:(返回System.DateTime

DateParser.Parse("1 month ago")
DateParser.Parse("after 15 days")
DateParser.Parse("15th feb 2010 at 5:30pm")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接