public static class TimeStampID
public struct DateTimeFormat
public const string D6T0 = "yyMMdd";
public const string D6T4 = "yyMMddHHmm";
public const string D6T6 = "yyMMddHHmmss";
public const string D6T8 = "yyMMddHHmmssff";
public const string D6T9 = "yyMMddHHmmssfff";
public const string D6T10 = "yyMMddHHmmssffff";
public const string D6T11 = "yyMMddHHmmssfffff";
public const string D6T12 = "yyMMddHHmmssffffff";
public const string D8T0 = "yyyyMMdd";
public const string D8T4 = "yyyyMMddHHmm";
public const string D8T6 = "yyyyMMddHHmmss";
public const string D8T8 = "yyyyMMddHHmmssff";
public const string D8T9 = "yyyyMMddHHmmssfff";
public const string D8T10 = "yyyyMMddHHmmssffff";
public const string D8T11 = "yyyyMMddHHmmssfffff";
public const string D8T12 = "yyyyMMddHHmmssffffff";
public static string NewID()
return NewID(string.Empty, 5, '-', '-', System.DateTime.Now, DateTimeFormat.D8T4);
public static string NewID(string prefix)
return NewID(prefix, 5, '-', System.DateTime.Now);
public static string NewID(string prefix, int randomLength)
return NewID(prefix, randomLength, '-', '-', DateTime.Now, DateTimeFormat.D8T4);
public static string NewID(string prefix, int randomLength, string dateTimePattern)
return NewID(prefix, randomLength, '-', '-', DateTime.Now, dateTimePattern);
public static string NewID(string prefix, int randomLength, char separator)
return NewID(prefix, randomLength, separator, separator, DateTime.Now, DateTimeFormat.D8T4);
public static string NewID(string prefix, int randomLength, char separator, string dateTimePattern)
return NewID(prefix, randomLength, separator, separator, DateTime.Now, dateTimePattern);
public static string NewID(string prefix, int randomLength, char separator, DateTime dateTime)
return NewID(prefix, randomLength, separator, separator, dateTime, DateTimeFormat.D8T4);
public static string NewID(string prefix, int randomLength, char separator1, char separator2)
return NewID(prefix, randomLength, separator1, separator2, DateTime.Now, DateTimeFormat.D8T4);
public static string NewID(string prefix, int randomLength, char separator1, char separator2, DateTime dateTime)
return NewID(prefix, randomLength, separator1, separator2, dateTime, DateTimeFormat.D8T4);
public static string NewID(string prefix, int randomLength, char separator1, char separator2, DateTime dateTime, string dateTimePattern)
return string.Format("{0}{1}{2}",
dateTime.ToString(dateTimePattern));
return string.Format("{0}{1}{2}{3}{4}",
dateTime.ToString(dateTimePattern),
GetRandomString(randomLength));
public static string GetRandomString(int randomLength)
string strOut = string.Empty;
while (strOut.Length < randomLength)
strOut = strOut + Guid.NewGuid().ToString("N");
return strOut.Substring(0, randomLength);
public static void Main()
Console.WriteLine(TimeStampID.NewID("@ABC",0 , '|', '-', DateTime.Now, TimeStampID.DateTimeFormat.D6T12));