如何在年 - 月 - 日之间插入连字符? [英] How do I insert a hyphen in between year-month-day ?

查看:155
本文介绍了如何在年 - 月 - 日之间插入连字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过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 a DateTime to a string.

Custom Date and Time Format Strings[^]


这篇关于如何在年 - 月 - 日之间插入连字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆