private static String FormatMiddleOccurences()

in csharp/EPAM.Deltix.HdTime/Formatter.cs [654:683]


		private static String FormatMiddleOccurences(HdDateTime time, String format, IFormatProvider formatProvider)
		{
			if (String.IsNullOrEmpty(format))
			{
				format = HdDateTimeFormatter.GetDefaultFormat();
			}

			// takes away all precise time formats.
			MutableString dateTimeFormat;
			IDictionary<Int32, String> preciseTimeFormats;
			Boolean isPreciseTimeFormat = HdDateTimeFormatter.TakeAwayPreciseTimeFormat(format, out dateTimeFormat, out preciseTimeFormats);
			if (!isPreciseTimeFormat)
			{
				return time.RawDateTime.ToString(format, formatProvider);
			}

			Byte timestampModulo = time.TimestampModulo;
			// in case, when preciseTime is GMT time with nanos component we skip its formatting
			if (time.Nanoseconds / 100 != 0)
			{ // replace all upper case FFFF symbols with ffff, in case, when whey are upper case and timestamp ticks != 0
				CorrectDateTimeFormat(dateTimeFormat, preciseTimeFormats, timestampModulo);
			}

			MutableString preciseTimeFormattingResult = FormatTimestamp(time.RawDateTime, dateTimeFormat.ToString(), formatProvider);

			ValidateDateTimeFormat(format, preciseTimeFormattingResult);
			FormatTimestampModuloOccurences(timestampModulo, preciseTimeFormats, preciseTimeFormattingResult);

			return preciseTimeFormattingResult.ToString();
		}