public void AppendFormat() { var builder = new StringBuilder("x"); var offset = Offset.FromHoursAndMinutes(17, 30); SimpleOffsetPattern.AppendFormat(offset, builder); Assert.AreEqual("x17:30", builder.ToString()); }
/// <summary> /// Adds parsing/formatting of an embedded pattern, e.g. an offset within a ZonedDateTime/OffsetDateTime. /// </summary> internal void AddEmbeddedPattern <TEmbedded>( IPartialPattern <TEmbedded> embeddedPattern, Action <TBucket, TEmbedded> parseAction, Func <TResult, TEmbedded> valueExtractor) { AddParseAction((value, bucket) => { var result = embeddedPattern.ParsePartial(value); if (!result.Success) { return(result.ConvertError <TResult>()); } parseAction(bucket, result.Value); return(null); }); AddFormatAction((value, sb) => embeddedPattern.AppendFormat(valueExtractor(value), sb)); }
public StringBuilder AppendFormat(Offset value, StringBuilder builder) { Preconditions.CheckNotNull(builder, nameof(builder)); return(value == Offset.Zero ? builder.Append("Z") : fullPattern.AppendFormat(value, builder)); }