There are quite a few posts out there on this topic, but I’m yet to find
one comprehensive post that walks through this beginning to end and
actually works. Let’s give it a go.
A very common scenario for SharePoint publishing sites is to customize
the look to suit the customers needs. Usually this is done with a
Content Query Web Part and some custom XSL. When doing this very often
you need to display a date. You will quickly notice that just
displaying the date that SharePoint gives you is not going to be
sufficient. If you just did the standard
<xsl:value-of select="@ArticleStartDate"/>
You get back a pretty nasty looking result
2009-03-23 00:00:00
However if you use the “FormatDate” function, you can make this look a lot better.
<xsl:value-of select="ddwrt:FormatDate(@ArticleStartDate, 2057, 3)"/>
Results in this
23 March 2009
All you need to do to make sure the “FormatDate” function is available
in your custom XSL files is to make sure you reference the ddwrt
namespace.
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime
Once this has been added to the rest of your namespace declarations at
the top of your <xsl:stylesheet> tag, you should be able to use
the “FormatDate” function anywhere you like. Here is sample of what a
full XSL file would look like that does this.
<xsl:stylesheetversion="1.0"exclude-result-prefixes="x d xsl msxsl cmswrt"xmlns:x="http://www.w3.org/2001/XMLSchema"xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"><xsl:template name="Default" match="*" mode="itemstyle"><xsl:value-of select="ddwrt:FormatDate(@ArticleStartDate, 2057, 3)"/></xsl:template></xsl:stylesheet>
Here are the details on the different formats you can get by changing
the parameters. March 23 12:00 AM was used as input for all outputs.
Output | Locale | Format |
3/23/2009 | 1033 | 1 |
3/23/2009 12:00 AM | 1033 | 2 |
Monday, March 23 2009 | 1033 | 3 |
12:00 AM | 1033 | 4 |
Monday, March 23, 2009 12:00 AM | 1033 | 7 |
3/23/2009 12:00:00 AM | 1033 | 13 |
Monday, March 23, 2009 12:00:00 AM | 1033 | 15 |
23/03/2009 | 2057 | 1 |
3/23/2009 12:00 AM | 2057 | 2 |
23 March 2009 | 2057 | 3 |
00:00 | 2057 | 4 |
23/03/2009 00:00 | 2057 | 5 |
23 March 2009 00:00 | 2057 | 7 |
00:00:00 | 2057 | 12 |
23/03/2009 00:00:00 | 2057 | 13 |
23 March 2009 00:00:00 | 2057 | 15 |
You can also get a list of all the available locale’s here.
No comments:
Post a Comment