首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析.NET核中的Timex表达式

解析.NET核中的Timex表达式
EN

Stack Overflow用户
提问于 2018-10-01 14:57:38
回答 3查看 1.4K关注 0票数 3

使用LUIS,我在实体值中接收XXXX-10-28作为日期。

我尝试过使用Chronic来解析,但是慢性病并不适用于timex库/格式。

我期望下面的字符串作为输入

  • XXXX-10-28应该等同于2018-10-28 (未来)
  • 2018-10-02TMO应等同于2018-10-02,即tomorrow

请注意,XXXX-XX表示YYYY-MM,但它没有numeric

是否有任何库或方法将这些字符串解析为有效的datetime格式的ASP.NET Core格式?

EN

回答 3

Stack Overflow用户

发布于 2019-06-13 21:41:03

您可以使用Microsoft.Recognizers.Text.DataTypes.TimexExpression包来自NuGet。它是微软识别器文本项目在github上的一部分

我找到了两种使用这个库的方法:

使用TimexProperty解析表达式并自己猜测年份:

代码语言:javascript
运行
复制
var parsed = new Microsoft.Recognizers.Text.DataTypes.TimexExpression.TimexProperty("XXXX-10-28");
Console.WriteLine(parsed.Year); // = null
Console.WriteLine(parsed.Month); // = 28
Console.WriteLine(parsed.DayOfMonth); // = 10

使用TimexResolver解析时间

代码语言:javascript
运行
复制
var resolution = Microsoft.Recognizers.Text.DataTypes.TimexExpression.TimexResolver.Resolve(new [] { "XXXX-10-28" }, System.DateTime.Today)

resolution.Values将包含一个包含两个解析项的数组,一个用于该日期的前一次出现,另一个用于该日期的下一次出现(基于传递给解析方法的DateTime )。

请注意,从个人经验和我在github上看到的情况来看,在编写本文时,这个包可以使用更高级的表达式非常小马车

票数 2
EN

Stack Overflow用户

发布于 2018-10-01 15:04:40

使用自定义格式模式:

代码语言:javascript
运行
复制
using System;
using System.Globalization;
class MainClass {
  public static void Main (string[] args) {
    var format = "1234-10-30";
    var date = DateTime.ParseExact(format, "yyyy-MM-dd", CultureInfo.InvariantCulture);
    Console.WriteLine (date.ToString("dd/MM/yyyy"));
  }
}

示例

票数 1
EN

Stack Overflow用户

发布于 2018-10-01 15:01:09

您可以使用DateTime.TryParseDateTime.TryParseExact以及自定义日期/时间格式字符串来完成这一任务。

根据您的示例,我认为您需要的格式字符串是yyyy-MM-dd,尽管您可能需要稍微调整一下。

示例:

代码语言:javascript
运行
复制
var input = "2018-10-28";
var format = "yyyy-MM-dd";
DateTime parsed;
if (DateTime.TryParseExact(input, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed))
{
    // Do whatever you want with "parsed"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52593835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档