Thursday, February 19, 2009

String Format for DateTime using C#

Custom DateTime format specifiers:
y (year), M (month), d (day),
h (hour 12), H (hour 24), m (minute), s (second),
f (second fraction),
F (second fraction, trailing zeroes are trimmed),
t (P.M or A.M) and z (time zone)

// Code Sample for string date format
// create date time 2008-03-09 16:05:07.123
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);

// "8 08 008 2008" year
String.Format("{0:y yy yyy yyyy}", dt);

// "3 03 Mar March" month
String.Format("{0:M MM MMM MMMM}", dt);

// "9 09 Sun Sunday" day
String.Format("{0:d dd ddd dddd}", dt);

// "4 04 16 16" hour 12/24
String.Format("{0:h hh H HH}", dt);

// "5 05" minute
String.Format("{0:m mm}", dt);

// "7 07" second
String.Format("{0:s ss}", dt);

// "1 12 123 1230" sec.fraction
String.Format("{0:f ff fff ffff}", dt);

// "1 12 123 123" without zeroes
String.Format("{0:F FF FFF FFFF}", dt);

// "P PM" A.M. or P.M.
String.Format("{0:t tt}", dt);

// "-6 -06 -06:00" time zone
String.Format("{0:z zz zzz}", dt);

SQL Server Date Formats

Standard Date Formats (Date Format - SQL Statement):
Mon DD YYYY 1 HH:MIAM (or PM)
SELECT CONVERT(VARCHAR(20), GETDATE(), 100)

MM/DD/YY
SELECT CONVERT(VARCHAR(8), GETDATE(), 1) AS [MM/DD/YY]

MM/DD/YYYY
SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY]

YY.MM.DD
SELECT CONVERT(VARCHAR(8), GETDATE(), 2) AS [YY.MM.DD]

YYYY.MM.DD
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD]

DD/MM/YY
SELECT CONVERT(VARCHAR(8), GETDATE(), 3) AS [DD/MM/YY]

DD/MM/YYYY
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY]

DD.MM.YY
SELECT CONVERT(VARCHAR(8), GETDATE(), 4) AS [DD.MM.YY]

DD.MM.YYYY
SELECT CONVERT(VARCHAR(10), GETDATE(), 104) AS [DD.MM.YYYY]

DD-MM-YY
SELECT CONVERT(VARCHAR(8), GETDATE(), 5) AS [DD-MM-YY]

DD-MM-YYYY
SELECT CONVERT(VARCHAR(10), GETDATE(), 105) AS [DD-MM-YYYY]

DD Mon YY
SELECT CONVERT(VARCHAR(9), GETDATE(), 6) AS [DD MON YY]

DD Mon YYYY
SELECT CONVERT(VARCHAR(11), GETDATE(), 106) AS [DD MON YYYY]

Mon DD, YY
SELECT CONVERT(VARCHAR(10), GETDATE(), 7) AS [Mon DD, YY]

Mon DD, YYYY
SELECT CONVERT(VARCHAR(12), GETDATE(), 107) AS [Mon DD, YYYY]

HH:MM:SS
SELECT CONVERT(VARCHAR(8), GETDATE(), 108)

Mon DD YYYY HH:MI:SS:MMMAM (or PM)
SELECT CONVERT(VARCHAR(26), GETDATE(), 109)

MM-DD-YY
SELECT CONVERT(VARCHAR(8), GETDATE(), 10) AS [MM-DD-YY]

MM-DD-YYYY
SELECT CONVERT(VARCHAR(10), GETDATE(), 110) AS [MM-DD-YYYY]

YY/MM/DD
SELECT CONVERT(VARCHAR(8), GETDATE(), 11) AS [YY/MM/DD]

YYYY/MM/DD
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS [YYYY/MM/DD]

YYMMDD
SELECT CONVERT(VARCHAR(6), GETDATE(), 12) AS [YYMMDD]

YYYYMMDD
SELECT CONVERT(VARCHAR(8), GETDATE(), 112) AS [YYYYMMDD]

DD Mon YYYY HH:MM:SS:MMM(24h)
SELECT CONVERT(VARCHAR(24), GETDATE(), 113)

HH:MI:SS:MMM(24H)
SELECT CONVERT(VARCHAR(12), GETDATE(), 114) AS [HH:MI:SS:MMM(24H)]

YYYY-MM-DD HH:MI:SS(24h)
SELECT CONVERT(VARCHAR(19), GETDATE(), 120)

YYYY-MM-DD HH:MI:SS.MMM(24h)
SELECT CONVERT(VARCHAR(23), GETDATE(), 121)

YYYY-MM-DDTHH:MM:SS:MMM
SELECT CONVERT(VARCHAR(23), GETDATE(), 126)

DD Mon YYYY HH:MI:SS:MMMAM
SELECT CONVERT(VARCHAR(26), GETDATE(), 130)

DD/MM/YYYY HH:MI:SS:MMMAM
SELECT CONVERT(VARCHAR(25), GETDATE(), 131)


Extended Date Formats (Date Format - SQL Statement):
YY-MM-DD
SELECT SUBSTRING(CONVERT(VARCHAR(10), GETDATE(), 120), 3, 8) AS [YY-MM-DD]
SELECT REPLACE(CONVERT(VARCHAR(8), GETDATE(), 11), '/', '-') AS [YY-MM-DD]

YYYY-MM-DD
SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS [YYYY-MM-DD]
SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 111), '/', '-') AS [YYYY-MM-DD]

MM/YY
SELECT RIGHT(CONVERT(VARCHAR(8), GETDATE(), 3), 5) AS [MM/YY]
SELECT SUBSTRING(CONVERT(VARCHAR(8), GETDATE(), 3), 4, 5) AS [MM/YY]

MM/YYYY
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 103), 7) AS [MM/YYYY]

YY/MM
SELECT CONVERT(VARCHAR(5), GETDATE(), 11) AS [YY/MM]

YYYY/MM
SELECT CONVERT(VARCHAR(7), GETDATE(), 111) AS [YYYY/MM]

Month DD, YYYY
SELECT DATENAME(MM, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]

Mon YYYY
SELECT SUBSTRING(CONVERT(VARCHAR(11), GETDATE(), 113), 4, 8) AS [Mon YYYY]

Month YYYY
SELECT DATENAME(MM, GETDATE()) + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR(4)) AS [Month YYYY]

DD Month
SELECT CAST(DAY(GETDATE()) AS VARCHAR(2)) + ' ' + DATENAME(MM, GETDATE()) AS [DD Month]

Month DD
SELECT DATENAME(MM, GETDATE()) + ' ' + CAST(DAY(GETDATE()) AS VARCHAR(2)) AS [Month DD]

DD Month YY
SELECT CAST(DAY(GETDATE()) AS VARCHAR(2)) + ' ' + DATENAME(MM, GETDATE()) + ' ' + RIGHT(CAST(YEAR(GETDATE()) AS VARCHAR(4)), 2) AS [DD Month YY]

DD Month YYYY
SELECT CAST(DAY(GETDATE()) AS VARCHAR(2)) + ' ' + DATENAME(MM, GETDATE()) + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR(4)) AS [DD Month YYYY]

MM-YY
SELECT RIGHT(CONVERT(VARCHAR(8), GETDATE(), 5), 5) AS [MM-YY]
SELECT SUBSTRING(CONVERT(VARCHAR(8), GETDATE(), 5), 4, 5) AS [MM-YY]

MM-YYYY
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 105), 7) AS [MM-YYYY]

YY-MM
SELECT RIGHT(CONVERT(VARCHAR(7), GETDATE(), 120), 5) AS [YY-MM]
SELECT SUBSTRING(CONVERT(VARCHAR(10), GETDATE(), 120), 3, 5) AS [YY-MM]

YYYY-MM
SELECT CONVERT(VARCHAR(7), GETDATE(), 120) AS [YYYY-MM]

MMDDYY
SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 1), '/', '') AS [MMDDYY]

MMDDYYYY
SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 101), '/', '') AS [MMDDYYYY]

DDMMYY
SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 3), '/', '') AS [DDMMYY]

DDMMYYYY
SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 103), '/', '') AS [DDMMYYYY]

Mon-YY
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(9), GETDATE(), 6), 6), ' ', '-') AS [Mon-YY]

Mon-YYYY
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), GETDATE(), 106), 8), ' ', '-') AS [Mon-YYYY]

DD-Mon-YY
SELECT REPLACE(CONVERT(VARCHAR(9), GETDATE(), 6), ' ', '-') AS [DD-Mon-YY]

DD-Mon-YYYY
SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-') AS [DD-Mon-YYYY]

Regular Expression using C#

// Regular Expression Pattern used frequently

// Any Character
// ([A-Z0-9.#();:,>=?' ])

// AlphaNumeric
// (^([\w]|\s)*$)

// Alpha
// (^[a-zA-Z]*$) OR (^(\w)*$)

// Numeric
// (^\d*$)

// Non AlphaNumeric
// (\W*)

// Amount
// (^\d*\.{1}\d{2}$)

// Date(MMDD18/19/20YY)
// ((0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(18|19|20)\d\d)

// Male or Female
// (M|F)

// Numeric Minium 5 Character
// (\d{5})

// Alpha Exactly 2 Character
// ([a-zA-Z]{2})

// Email
// (^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$)


// Note: Assign pattern like this in a variable
// string strPattern = @"([a-zA-Z]{2})";


// Coding Samples
// AlphaNumericOnly >> Example: TEST 4 ME
public bool isAlphaNumericOnly(string strToCheck)
{
string strPattern = @"(^([\w]|\s)*$)";
Regex RegexPattern = new Regex(@strPattern);
return RegexPattern.IsMatch(strToCheck);
}

// AlphaOnly >> Example: TESTME
public bool isAlphaOnly(string strToCheck)
{
//string strPattern = @"(^(\w)*$)";
string strPattern = @"(^[a-zA-Z]*$)";
Regex RegexPattern = new Regex(@strPattern);
return RegexPattern.IsMatch(strToCheck);
}

// NumericOnly >> Example: 123456
public bool isNumericOnly(string strToCheck)
{
string strPattern = @"(^\d*$)";
Regex RegexPattern = new Regex(@strPattern);
return RegexPattern.IsMatch(strToCheck);
}

// AmountOnly >> Example: 12.25
public bool isAmountOnly(string strToCheck)
{
string strPattern = @"(^\d*\.{1}\d{2}$)";
Regex RegexPattern = new Regex(@strPattern);
return RegexPattern.IsMatch(strToCheck);
}

// DateOnly >> Example: MMDDYYYY (12122001) - valid year start with 18, 19, 20
public bool isDateOnly(string strToCheck)
{
string strPattern = @"((0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(18|19|20)\d\d)";
Regex RegexPattern = new Regex(@strPattern);
return RegexPattern.IsMatch(strToCheck);
}

// Alternative way to check valid date, like leap or so
// DateOnly >> Example: MMDDYYYY (12122001)
public bool isValidDate(string date)
{
try
{
String format = "MMddyyyy"; // mmddyyyy
System.Globalization.DateTimeFormatInfo dtfi = new System.Globalization.DateTimeFormatInfo();
dtfi.ShortDatePattern = format;
DateTime dt = DateTime.ParseExact(date, "d", dtfi);
}
catch (Exception)
{
return false;
}
return true;
}