public static String getTimeStamp(imbTimeStampFormat timeFormat = imbTimeStampFormat.totalSeconds)
        {
            String output = "";

            switch (timeFormat)
            {
            case imbTimeStampFormat.imbApplicationStartTime:
                output = Process.GetCurrentProcess().StartTime.ToString("MM-dd-yyyy HH:mm",
                                                                        CultureInfo.InvariantCulture);

                break;

            case imbTimeStampFormat.imbDatabase:
                output = DateTime.Now.ToString("MM-dd-yyyy HH:mm", CultureInfo.InvariantCulture);

                break;

            case imbTimeStampFormat.iso8601:
                output = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture);

                break;

            case imbTimeStampFormat.imbDatabaseTableName:     // dd_mm_yyyy
                output = DateTime.UtcNow.ToString("dd_mm_yyyy", CultureInfo.InvariantCulture);
                break;

            case imbTimeStampFormat.totalSeconds:
                TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                output = Convert.ToInt64(ts.TotalSeconds).ToString();
                break;

            case imbTimeStampFormat.imbBackup:
                output = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff", CultureInfo.InvariantCulture);
                break;

            case imbTimeStampFormat.imbExecutionTimeStamp:
                output = DateTime.Now.ToString("yy_MM_dd_HH:mm:ss:ffffff", CultureInfo.InvariantCulture);
                break;

            case imbTimeStampFormat.imbSinceApplicationStart:
                var      format = "h{0}_m{1}_s{2}_ms{3}";
                TimeSpan _tm    = DateTime.Now - Process.GetCurrentProcess().StartTime;

                output = String.Format(format, _tm.Hours.ToString(), _tm.Minutes.ToString(), _tm.Seconds.ToString(),
                                       _tm.Milliseconds.ToString());
                break;

            case imbTimeStampFormat.imbSinceApplicationStartRough:
                var      format2 = "h{0}m{1}s{2}";
                TimeSpan _tm2    = DateTime.Now - Process.GetCurrentProcess().StartTime;

                output = String.Format(format2, _tm2.Hours.ToString(), _tm2.Minutes.ToString(), _tm2.Seconds.ToString());
                break;

            case imbTimeStampFormat.imbExceptionStamp:
                exceptionCount++;
                output = "run" + applicationRunStamp.ToString("D7") + "-exc" + exceptionCount + "-";
                //output += DateTime.UtcNow.ToString("MM-dd", CultureInfo.InvariantCulture);
                break;

            case imbTimeStampFormat.imbCacheStamp:
                output = DateTime.Now.ToString("MM", CultureInfo.InvariantCulture);
                break;

            case imbTimeStampFormat.none:
                output = "";
                break;
            }
            return(output);
            // Default implementation of UNIX time of the current UTC time
        }
 /// <summary>
 /// Generate the timestamp for the signature
 /// </summary>
 /// <returns></returns>
 public static String GenerateTimeStamp(this imbTimeStampFormat timeFormat)
 {
     return(getTimeStamp(timeFormat));
 }