如何在年 - 月 - 日之间插入连字符? [英] How do I insert a hyphen in between year-month-day ?
本文介绍了如何在年 - 月 - 日之间插入连字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我通过xml提取日期值,然后从我获取xml的日期中减去一天。我得到正确的值(拉'天-1'天)值显示为20160131.我正在尝试插入连字符以获得此值2016-01-31或者它可能是斜线2016/01/31。
< xsl: 样式 表 version = 1.0 xmlns:xsl = http://www.w3.org/1999/XSL/Transform\">
xmlns:msxsl =urn:schemas-microsoft -com:xsltexclude-result-prefixes =msxsl
xmlns:cs =urn:cs
>
< msxsl: script language = C# implements-prefix = cs xmlns:msxsl = #unknown >
< msxsl:using 命名空间 = System.IO / >
< ![CDATA [
public string PadLeft( String s, String c, int i){
return (s.PadLeft(i,Convert.ToChar(c)));
}
public string PadLRight( String s, String c, int i){
return (s.PadRight(i,Convert.ToChar(c)));
}
public string AdjustDate(< span class =code-keyword> int date_year, int date_month, int date_day)
{
DateTime checkDate = new DateTime(date_year,date_month,date_day);
DateTime postDate = checkDate.AddDays(-1);
int year = postDate.Year;
int month = postDate.Month;
int day = postDate.Day;
string yearString = year.ToString();
string monthString = month.ToString();
string dayString = day.ToString();
if (monthString.Length == 1 )
{
monthString = ' 0' + monthString;
}
else
{
monthString = monthString;
}
if (dayString.Length == 1 )
{
dayString = ' 0' + dayString;
}
else
{
dayString = dayString;
}
return yearString + monthString + dayString;
}
< xsl:output method = text xmlns:xsl = #unknown / >
< xsl:template 匹配 = / xmlns:xsl = #unknown >
< xsl:value-of 选择 = 'POST DATE' / >
< xsl:value-of 选择 = ',' / >
< xsl:value-of 选择 = 'GL AC COUNT' / >
< xsl:value-of 选择 = ',' / >
< xsl:value-of 选择 = '帐户说明' / >
< xsl:value-of 选择 = ',' / >
< span class =code-keyword>< xsl:value-of 选择 = 'DEBIT' / >
< xsl:value-of 选择 = ',' / >
< 跨度> xsl:value-of 选择 < span class =code-keyword> = 'CREDIT' / >
< xsl:value-of select = ',' / >
< xsl:value-of select = 'HOURS' / >
< xsl:value-of 选择 = ',' / >
< xsl:value-of select = 'DESCRIPTION' / >
< xsl: text >
< / XSL:吨分机 >
< xsl:for-each select = 导出/记录 >
< xsl:if test = DEBIT!= 0和DEBIT!='' >
< xsl:value-of 选择 = cs:AdjustDate(CHECKDATEMONTH,CHECKDATEDAY,CHECKDATEYEAR) / > < / xsl:if > < / xsl:for-each > < / xsl:template >
解决方案
您正在寻找将DateTime
格式化为字符串的C#标准函数。
自定义日期和时间格式字符串 [ ^ ]
I am pulling a date value via xml, then I subtract one day from the date I am getting in xml. I am getting correct value ( pulled 'day -1' day) value appears as 20160131. I am trying to insert a hyphen to get this value 2016-01-31 or it could be slash 2016/01/31.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
xmlns:cs="urn:cs"
>
<msxsl:script language="C#" implements-prefix="cs" xmlns:msxsl="#unknown">
<msxsl:using namespace="System.IO" />
<![CDATA[
public string PadLeft(String s, String c, int i) {
return (s.PadLeft(i,Convert.ToChar(c)));
}
public string PadLRight(String s, String c, int i) {
return (s.PadRight(i,Convert.ToChar(c)));
}
public string AdjustDate(int date_year, int date_month, int date_day)
{
DateTime checkDate = new DateTime(date_year,date_month,date_day);
DateTime postDate = checkDate.AddDays(-1);
int year = postDate.Year;
int month = postDate.Month;
int day = postDate.Day;
string yearString = year.ToString();
string monthString = month.ToString();
string dayString = day.ToString();
if (monthString.Length == 1)
{
monthString = '0' + monthString;
}
else
{
monthString = monthString;
}
if (dayString.Length == 1)
{
dayString = '0' + dayString;
}
else
{
dayString = dayString;
}
return yearString + monthString + dayString;
}
<xsl:output method="text" xmlns:xsl="#unknown" />
<xsl:template match="/" xmlns:xsl="#unknown">
<xsl:value-of select="'POST DATE'" />
<xsl:value-of select="','" />
<xsl:value-of select="'GL ACCOUNT'" />
<xsl:value-of select="','" />
<xsl:value-of select="'ACCOUNT DESCRIPTION'" />
<xsl:value-of select="','" />
<xsl:value-of select="'DEBIT'" />
<xsl:value-of select="','" />
<xsl:value-of select="'CREDIT'" />
<xsl:value-of select="','" />
<xsl:value-of select="'HOURS'" />
<xsl:value-of select="','" />
<xsl:value-of select="'DESCRIPTION'" />
<xsl:text>
</xsl:text>
<xsl:for-each select="Export/Record">
<xsl:if test="DEBIT != 0 and DEBIT != '' ">
<xsl:value-of select="cs:AdjustDate(CHECKDATEMONTH,CHECKDATEDAY,CHECKDATEYEAR)" /></xsl:if></xsl:for-each></xsl:template>
解决方案
You are looking for the C# standard function of formatting aDateTime
to a string.
Custom Date and Time Format Strings[^]
这篇关于如何在年 - 月 - 日之间插入连字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文