Skip to main content

A quick reference to .NET string formatting in C#

Every object has a method called ToString that returns a string representation of the object. The ToString method can accept a string parameter, which tells the object how to format itself - in the String.Format call, the formatting string is passed after the position, for example, "{0:##}"

The text inside the curly braces is {index[,alignment][:formatString]}. If alignment is positive, the text is right-aligned in a field the given number of spaces; if it's negative, it's left-aligned.

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value); :- This will output "$1,240.00" if passed 1243.50.

Numbers
Basic number formatting specifiers:
SpecifierTypeFormat Output (Passed Double 1.42)Output (Passed Int -12400)
cCurrency{0:c}$1.42-$12,400
dDecimal (Whole number){0:d}System.FormatException-12400
eScientific{0:e}1.420000e+000-1.240000e+004
fFixed point{0:f}1.42-12400.00
gGeneral{0:g}1.42-12400
nNumber with commas for thousands{0:n}1.42-12,400
rRound trippable{0:r}1.42System.FormatException
xHexadecimal{0:x4}System.FormatExceptioncf90

Custom number formatting:
SpecifierTypeExample Output (Passed Double 1500.42)Note
0Zero placeholder{0:00.0000}1500.4200Pads with zeroes.
#Digit placeholder{0:(#).##}(1500).42
.Decimal point{0:0.0}1500.4
,Thousand separator{0:0,0}1,500Must be between two zeroes.
,.Number scaling{0:0,.} 2Comma adjacent to Period scales by 1000.
%Percent{0:0%}150042%Multiplies by 100, adds % sign.
eExponent placeholder{0:00e+0}15e+2Many exponent formats available.
;Group separatorsee below

The group separator is especially useful for formatting currency values which require that negative values be enclosed in parentheses. This currency formatting example at the bottom of this document makes it obvious: Dates

Note that date formatting is especially dependant on the system's regional settings; the example strings here are from my local locale.
SpecifierTypeExample (Passed System.DateTime.Now)
dShort date10/12/2002
DLong dateDecember 10, 2002
tShort time10:11 PM
TLong time10:11:29 PM
fFull date & time December 10, 2002 10:11 PM
FFull date & time (long)December 10, 2002 10:11:29 PM
gDefault date & time10/12/2002 10:11 PM
GDefault date & time (long)10/12/2002 10:11:29 PM
MMonth day patternDecember 10
rRFC1123 date stringTue, 10 Dec 2002 22:11:29 GMT
sSortable date string2002-12-10T22:11:29
uUniversal sortable, local time2002-12-10 22:13:50Z
UUniversal sortable, GMTDecember 11, 2002 3:13:50 AM
YYear month patternDecember, 2002

Custom date formatting:
SpecifierTypeExample Example Output
ddDay{0:dd}10
dddDay name{0:ddd}Tue
ddddFull day name{0:dddd}Tuesday
f, ff, ...Second fractions{0:fff}932
gg, ...Era{0:gg}A.D.
hh2 digit hour{0:hh}10
HH2 digit hour, 24hr format{0:HH}22
mmMinute 00-59{0:mm}38
MMMonth 01-12{0:MM}12
MMMMonth abbreviation{0:MMM}Dec
MMMMFull month name{0:MMMM}December
ssSeconds 00-59{0:ss}46
ttAM or PM{0:tt}PM
yyYear, 2 digits{0:yy}02
yyyyYear{0:yyyy}2002
zzTimezone offset, 2 digits{0:zz}-05
zzzFull timezone offset{0:zzz}-05:00
:Separator{0:hh:mm:ss}10:43:20
/Separator{0:dd/MM/yyyy}10/12/2002

Comments

  1. String.Format("{0:R}", DataBinder.Eval(Container.DataItem, "PostedDate"))

    ReplyDelete

Post a Comment

Popular posts from this blog

Crystal reports load report failed: Could not load file or assembly CrystalDecisions.Web, Version=10.2.3600.0

Recently we upgraded our Web Application Server to Windows Server 2008. After this, crystal reports in the VS2005 applications failed to load. This is because VS 2005 applications were using crystal report version 10.2.3600.0 which we can't install in Windows Server 2008. In the new server we can only install the crystal report version 10.5.3700.0. I had to follow the below steps to resolve this issue. Downloaded and installed new version of crystal report from the page below. http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=56787567 Changed versions(10.2.3600.0 to 10.5.3700.0) in Web.Config and report viewer pages We removed all the crystal report reference from the project and tried to refer the new versions. But new versions were not displayed in the list. So I decided to take a local copy of these dlls and refer them. To do this run the below command( as Admin ) regsvr32 -u C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll The above command will help you

ഗുരു ദേവോ ഭവ:

ഇ ന്ന് ദേശീയ അധ്യാപക ദിനം. അധ്യാപകനും രാഷ്ട്രപതിയുമായിരുന്ന ഡോ.എസ് രാധാകൃഷ്ണന്‍റെ പിറന്നാള്‍ ദിനമാണ് അധ്യാപക ദിനമായി നാം ആചരിക്കുന്നത്. ഈ ഒരു സുദിനത്തില്‍ ഈയൊരു അധ്യാപകനെ സ്മരിച്ചില്ലെങ്കില്‍ അതൊരു നന്ദികേടായി പോവും.  ഓര്‍മ്മക്കുറിപ്പിലേക്ക് കടക്കുന്നതിനു മുന്‍പൊരു ഡിസ്ക്ലെയിമര്‍. ബാദ്ധ്യതാ നിരാകരണം ഒടുക്കം മാത്രം നടത്തുന്നതാണ് ആചാരം. എങ്കിലും, അതു താനല്ലയോ ഇതെന്ന് ചുമ്മാ കല്‍പ്പിച്ചു കൂട്ടി എന്തിനുമേതിനും വ്രണപ്പെടുന്നൊരു സമൂഹത്തില്‍, അവകാശപരിത്യാഗം ആദ്യം തന്നെ നടത്തുകയെന്ന ആചാരലംഘനമാവും ഉചിതം. അതെ, ഇനി ഇവിടെ പറയാന്‍ പോവുന്നതൊരു മിത്ത് മാത്രമാണു. എന്ന്? എവിടെ? എത്രത്തോളം? നടന്നുവെന്നതിനൊന്നും ഇവിടെയൊരു പ്രസക്തിയില്ല. പതിറ്റാണ്ടുകളായി കേരളത്തിലെ പലപല കോളേജുകളും ഇതെന്‍റെ ഗര്‍ഭമാണെന്ന അവകാശവാദവുമായി എത്തിയിട്ടുണ്ടു. സത്യം ആര്‍ക്കറിയാം! ഒരു കാര്യം മാത്രം എനിക്കു തറപ്പിച്ചു പറയാം, എന്‍റെ ഗര്‍ഭം ഇങ്ങിനെയല്ല. അതുകൊണ്ടു തന്നെ ഈ കഥയിലെ കഥാപാത്രങ്ങളും കഥാപരിസരവും സാങ്കല്‍പ്പികം മാത്രമാണു, മറിച്ച് തോന്നുന്നെങ്കില്‍ അതു കയ്യിലിരിപ്പിന്‍റെ ഗുണം

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

I was getting timeout error while executing a stored procedure from the web application. But this stored procedure is executing within a second while running from SQL management studio. This issue can happen when database's statistics and/query plan cache are incorrect. This can be resolved by updating statistics by executing  exec sp_updatestats Error: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. Solution:  exec sp_updatestats If issue didn't resolve even after executing above this, you may need to optimize the query.