无法在 C# 中将类型 'string' 隐式转换为'System.DateTime'



我正在开发一个使用C#脚本的XSLT。

我有一个函数DateParse,它应该取一个字符串;yyyy-MM-dd";。我希望它将字符串返回为存储为"0"的日期;yyyyMMdd";

我尝试了以下(除其他外(:

public DateTime DateParse(string dateString)
{
string result = DateTime.ParseExact(dateString, "yyyyMMdd",
System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
return result;
}

然而,我得到了以下错误:

Cannot implicitly convert type 'string' to 'System.DateTime'

有人有什么想法吗?我迷路了,已经尝试了很多。

问候

编辑:

根据请求,我在这里共享执行C#函数的xslt代码。

<xsl:variable name="ExtractDate" select="ms:DateParse(/Extraction/Row[1]/AsOfDate)" />

AsOfDate是xlsx文件中的一列,其中包含值2021-09-10或yyyy-MM-dd 格式的任何日期

我不知道2021-09-10将如何使用DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)进行解析。

我想你想要DateTime.ParseExact(dateString, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)

您只想从日期字符串中删除-字符吗?

在纯XSLT中,使用XPathtranslate函数将-字符转换为零长度字符串非常简单。

样本输入:

<Extraction>
<Row>
<AsOfDate>2021-09-10</AsOfDate>
</Row>
</Extraction>

XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="ExtractDate" select="
translate(
/Extraction/Row[1]/AsOfDate[1], 
'-', 
''
)
"/>
<result><xsl:value-of select="$ExtractDate"/></result>
</xsl:template>
</xsl:stylesheet>

结果:

<result>20210910</result>

相关内容

  • 没有找到相关文章

最新更新