Convert to Text


Convert to Text Converts and formats input values of different types to a text string.

By default, the Convert to Text Node can combine and format eight input values. The node outputs the result as a text. Values can be accessed by encapsulating an input value index in {} brackets, e.g. {3} for embedding input value 3 in the output text. Additional inputs can be added via Custom Model by using the Append Input and Remove Input buttons at the bottom of the Property Editor. Formatting of individual values follows the rules defined by the Composite Formatting features of the .NET framework.

{index[,alignment][:formatString]}

Example

Assume two float properties are bound to a Convert to Text Node, the first having a value of 5.15335 and the second of 2.3254736. The following formatting string

Length: {0:0.00} (Maximum {1:0})

would result in this output string:

Length: 5.15 Maximum 2

Encoding & Decoding

The input/output string can be encoded/decoded by using the properties in the WebEncode category. This will for example replace characters that are not legal in an HTML string (i.e. the < character which is reserved for opening/closing tags and thus must be replace by &lt; when used anywhere else) with the correct encoding or vice versa.

JSON

If the type of an input value is JsonObject some special formatting codes apply. Please see Json Parser Node.

The JsonEncode and JsonDecode options allows one to encode and decode Json escaped text (string). If you want to utilize the Convert to Text node to create Json formatted text you should set Input to JsonEncode.

Example

Value0 and Value1 receive strings. Value2 receives a number.

{{
  "firstName" : {0},
  "lastName"  : {1},
  "age"       : {2}   
}}

The double curled braces {{ are mandatory. A single curled brace is interpreted as placeholder for value substitution. The doubling escapes the brace which causes the output to contain single brace {.

Culture

The Culture property defines the culture to be used to convert (format) the values into text. The default value is Machine which refers to the culture settings define in the Machine Configuration.

Standard Number Formatting

Standard numeric format strings are used to format common numeric types. A standard numeric format string takes the form Axx, where A is an alphabetic character called the format specifier, and xx is an optional integer called the precision specifier. The precision specifier ranges from 0 to 99 and affects the number of digits in the result.

"C" or "c" Currency Result: A currency value.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: Defined by Culture
123.456 ("C", en-US) -> $123.46
123.456 ("C", fr-FR) -> 123,46 €
123.456 ("C", ja-JP) -> ¥123
-123.456 ("C3", en-US) -> ($123.456)
"D" or "d" Decimal Result: Integer digits with optional negative sign.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: Minimum number of digits required.
1234 ("D") -> 1234
-1234 ("D6") -> -001234
"E" or "e" Exponential
(scientific)
Result: Integer digits with optional negative sign.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: 6
1234 ("D") -> 1234
-1234 ("D6") -> -001234
"F" or "f" Fixed-point Result: Integral and decimal digits with optional negative sign.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: Defined by Culture
1234.567 ("F", en-US) -> 1234.57
1234.567 ("F", de-DE) -> 1234,57
1234 ("F1", en-US) -> 1234.0
"G" or "g" General Result: The most compact of either fixed-point or scientific notation.
Supported by: All numeric types.
Precision specifier: Number of significant digits.
Default precision specifier: Depends on numeric type.
-123.456 ("G", en-US) -> -123.456
123.456 ("G", sv-SE) -> -123,456
123.4546 ("G4", en-US) -> 123.5
"N" or "n" Number Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.
Supported by: All numeric types.
Precision specifier: Desired number of decimal places.
Default precision specifier: Defined by Culture
1234.567 ("N", en-US) -> 1,234.57
1234.567 ("N", ru-RU) -> 1 234,57
1234 ("N", en-US) -> 1,234.0
1234 ("N", ru-RU) -> 1 234,0
"P" or "p" Percent Result: Number multiplied by 100 and displayed with a percent symbol.
Supported by: All numeric types.
Precision specifier: Desired number of decimal places.\Default precision specifier: Defined by Culture
1 ("P", en-US) -> 100.00 %
1 ("P", fr-FR) -> 100,00 %
-0.39678 ("P1", en-US) -> -39.7 %
-0.39678 ("P1", fr-FR) -> -39,7 %
"X" or "x" Hexadecimal Result: A hexadecimal string.
Supported by: Integral types only.
Precision specifier: Number of digits in the result string.
255 ("X") -> FF
-1 ("x") -> ff
255 ("x4") -> 00ff
-1 ("X4") -> 00FF

Custom Numeric Formatting

You can create a custom numeric format string, which consists of one or more custom numeric specifiers, to define how to format numeric data. A custom numeric format string is any format string that is not a standard numeric format string.

"0" Zero
placeholder
Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.
1234.5678 ("00000") -> 01235
0.45678 ("0.00", en-US) -> 0.46
0.45678 ("0.00", fr-FR) -> 0,46
"#" Digit
placeholder
Replaces the pound sign with the corresponding digit if one is present; otherwise, no digit appears in the result string.
1234.5678 ("#####") -> 1235
0.45678 ("#.##", en-US) -> .46
0.45678 ("#.##", fr-FR) -> ,46
"." Decimal
point
Determines the location of the decimal separator in the result string.
0.45678 ("0.00", en-US) -> 0.46
0.45678 ("0.00", fr-FR) -> 0,46
"," Group separator and number scalingServes as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.
Group separator specifier:
2147483647 ("##,#", en-US) -> 2,147,483,647
2147483647 ("##,#", es-ES) -> 2.147.483.647
Scaling specifier:
2147483647 ("#,#,,", en-US) -> 2,147
2147483647 ("#,#,,", es-ES) -> 2.147
"%" Percentage
placeholder
Multiplies a number by 100 and inserts a localized percentage symbol in the result string.
0.3697 ("%#0.00", en-US) -> %36.97
0.3697 ("%#0.00", el-GR) -> %36,97
0.3697 ("##.0 %", en-US) -> 37.0 %
0.3697 ("##.0 %", el-GR) -> 37,0 %
"‰" Per mille
placeholder
Multiplies a number by 1000 and inserts a localized per mille symbol in the result string.
0.03697 ("#0.00‰", en-US) -> 36.97‰
0.03697 ("#0.00‰", ru-RU) -> 36,97‰
"E0"
"E+0"
"E-0"
"e0"
"e+0"
"e-0"
Exponential
notation
If followed by at least one 0 (zero), formats the result using exponential notation. The case of "E" or "e" indicates the case of the exponent symbol in the result string. The number of zeros following the "E" or "e" character determines the minimum number of digits in the exponent. A plus sign (+) indicates that a sign character always precedes the exponent. A minus sign (-) indicates that a sign character precedes only negative exponents.
987654 ("#0.0e0") -> 98.8e4
1503.92311 ("0.0##e+00") -> 1.504e+03
1.8901385E-16 ("0.0e+00") -> 1.9e-16
"\" Escape
character
Causes the next character to be interpreted as a literal rather than as a custom format specifier.
987654 ("\###00\#") -> #987654#
'string'
"string"
Literal
string
delimiter
Indicates that the enclosed characters should be copied to the result string unchanged.
68 ("# ' degrees'") -> 68 degrees
68 ("#' degrees'") -> 68 degrees
; Section
separator
Defines sections with separate format strings for positive, negative, and zero numbers.
12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35
0 ("#0.0#;(#0.0#);-\0-") -> -0-
-12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35)
12.345 ("#0.0#;(#0.0#)") -> 12.35
0 ("#0.0#;(#0.0#)") -> 0.0
-12.345 ("#0.0#;(#0.0#)") -> (12.35)

Standard Date and Time Formatting

A standard date and time format string uses a single format specifier to define the text representation of a date and time value. Any date and time format string that contains more than one character, including white space, is interpreted as a custom date and time format string; for more information, see Custom Date and Time Format Strings.

"d" Short date pattern.
6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)
6/15/2009 1:45:30 PM -> 15/06/2009 (fr-FR)
6/15/2009 1:45:30 PM -> 2009/06/15 (ja-JP)
"D" Long date pattern.
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 (en-US)
6/15/2009 1:45:30 PM -> 15 июня 2009 г. (ru-RU)
6/15/2009 1:45:30 PM -> Montag, 15. Juni 2009 (de-DE)
"f" Full date/time pattern (short time).
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45 PM (en-US)
6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45 (sv-SE)
6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45 μμ (el-GR)
"F" Full date/time pattern (long time).
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45:30 PM (en-US)
6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45:30 (sv-SE)
6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR)
"g" General date/time pattern (short time).
6/15/2009 1:45:30 PM -> 6/15/2009 1:45 PM (en-US)
6/15/2009 1:45:30 PM -> 15/06/2009 13:45 (es-ES)
6/15/2009 1:45:30 PM -> 2009/6/15 13:45 (zh-CN)
"G" General date/time pattern (long time).
6/15/2009 1:45:30 PM -> 6/15/2009 1:45:30 PM (en-US)
6/15/2009 1:45:30 PM -> 15/06/2009 13:45:30 (es-ES)
6/15/2009 1:45:30 PM -> 2009/6/15 13:45:30 (zh-CN)
"M" or "m" Month/day pattern.
6/15/2009 1:45:30 PM -> June 15 (en-US)
6/15/2009 1:45:30 PM -> 15. juni (da-DK)
6/15/2009 1:45:30 PM -> 15 Juni (id-ID)
"O" or "o" Round-trip date/time pattern.
6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30.0900000
"R" or "r" RFC1123 pattern.
6/15/2009 1:45:30 PM -> Mon, 15 Jun 2009 20:45:30 GMT
"s" Sortable date/time pattern.
6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30
"t" Short time pattern.
6/15/2009 1:45:30 PM -> 1:45 PM (en-US)
6/15/2009 1:45:30 PM -> 13:45 (hr-HR)
6/15/2009 1:45:30 PM -> 01:45 م (ar-EG)
"T" Long time pattern.
6/15/2009 1:45:30 PM -> 1:45:30 PM (en-US)
6/15/2009 1:45:30 PM -> 13:45:30 (hr-HR)
6/15/2009 1:45:30 PM -> 01:45:30 م (ar-EG)
"u" Universal sortable date/time pattern.
6/15/2009 1:45:30 PM -> 2009-06-15 20:45:30Z
"U" Universal full date/time pattern.
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 8:45:30 PM (en-US)
6/15/2009 1:45:30 PM -> den 15 juni 2009 20:45:30 (sv-SE)
6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)
"Y" or "y" Year month pattern.
6/15/2009 1:45:30 PM -> June, 2009 (en-US)
6/15/2009 1:45:30 PM -> juni 2009 (da-DK)
6/15/2009 1:45:30 PM -> Juni 2009 (id-ID)

Custom Date and Time Formatting

A date and time format string defines the text representation of a DateTime value that results from a formatting operation. It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. A custom format string consists of one or more custom date and time format specifiers. Any string that is not a standard date and time format string is interpreted as a custom date and time format string.

Year
"y" The year, from 0 to 99.
1/1/0001 12:00:00 AM -> 1
1/1/0900 12:00:00 AM -> 0
1/1/1900 12:00:00 AM -> 0
6/15/2009 1:45:30 PM -> 9
"yy" The year, from 00 to 99.
1/1/0001 12:00:00 AM -> 01
1/1/0900 12:00:00 AM -> 00
1/1/1900 12:00:00 AM -> 00
6/15/2009 1:45:30 PM -> 09
"yyy" The year, with a minimum of three digits.
1/1/0001 12:00:00 AM -> 001
1/1/0900 12:00:00 AM -> 900
1/1/1900 12:00:00 AM -> 1900
6/15/2009 1:45:30 PM -> 2009
"yyyy" The year as a four-digit number.
1/1/0001 12:00:00 AM -> 0001
1/1/0900 12:00:00 AM -> 0900
1/1/1900 12:00:00 AM -> 1900
6/15/2009 1:45:30 PM -> 2009
"yyyyy" The year as a five-digit number.
1/1/0001 12:00:00 AM -> 00001
6/15/2009 1:45:30 PM -> 02009
Month
"M" The month, from 1 through 12.
6/15/2009 1:45:30 PM -> 6
"MM" The month, from 01 through 12.
6/15/2009 1:45:30 PM -> 06
"MMM" The abbreviated name of the month.
6/15/2009 1:45:30 PM -> Jun (en-US)
6/15/2009 1:45:30 PM -> juin (fr-FR)
6/15/2009 1:45:30 PM -> Jun (zu-ZA)
"MMMM" The full name of the month.
6/15/2009 1:45:30 PM -> June (en-US)
6/15/2009 1:45:30 PM -> juni (da-DK)
6/15/2009 1:45:30 PM -> uJuni (zu-ZA)
Day
"d" The day of the month, from 1 through 31.
6/1/2009 1:45:30 PM -> 1
6/15/2009 1:45:30 PM -> 15
"dd" The day of the month, from 01 through 31.
6/1/2009 1:45:30 PM -> 01
6/15/2009 1:45:30 PM -> 15
"ddd" The abbreviated name of the day of the week.
6/15/2009 1:45:30 PM -> Mon (en-US)
6/15/2009 1:45:30 PM -> Пн (ru-RU)
6/15/2009 1:45:30 PM -> lun. (fr-FR)
"dddd" The full name of the day of the week.
6/15/2009 1:45:30 PM -> Monday (en-US)
6/15/2009 1:45:30 PM -> понедельник (ru-RU)
6/15/2009 1:45:30 PM -> lundi (fr-FR)
Period or era
"g","gg" The period or era.
6/15/2009 1:45:30 PM -> A.D.
Hour
"h" The hour, using a 12-hour clock from 1 to 12.
6/15/2009 1:45:30 AM -> 1
6/15/2009 1:45:30 PM -> 1
"hh" The hour, using a 12-hour clock from 01 to 12.
6/15/2009 1:45:30 AM -> 01
6/15/2009 1:45:30 PM -> 01
"H" The hour, using a 24-hour clock from 0 to 23.
6/15/2009 1:45:30 AM -> 1
6/15/2009 1:45:30 PM -> 13
"HH" The hour, using a 24-hour clock from 00 to 23.
6/15/2009 1:45:30 AM -> 01
6/15/2009 1:45:30 PM -> 13
Minute
"m" The minute, from 0 through 59.
6/15/2009 1:09:30 AM -> 9
6/15/2009 1:09:30 PM -> 9
"mm" The minute, from 00 through 59.
6/15/2009 1:09:30 AM -> 09
6/15/2009 1:09:30 PM -> 09
Second
"s" The second, from 0 through 59.
6/15/2009 1:45:09 PM -> 9
"ss" The second, from 00 through 59.
6/15/2009 1:45:09 PM -> 09
Fraction of a second
"f" The tenths of a second in a date and time value.
6/15/2009 13:45:30.617 -> 6
6/15/2009 13:45:30.050 -> 0
"ff" The hundredths of a second in a date and time value.
6/15/2009 13:45:30.617 -> 61
6/15/2009 13:45:30.005 -> 00
"fff" The milliseconds in a date and time value.
6/15/2009 13:45:30.617 -> 617
6/15/2009 13:45:30.0005 -> 000
"ffff" The ten thousandths of a second in a date and time value.
6/15/2009 13:45:30.6175 -> 6175
6/15/2009 13:45:30.00005 -> 0000
"fffff" The hundred thousandths of a second in a date and time value.
6/15/2009 13:45:30.61754 -> 61754
6/15/2009 13:45:30.000005 -> 00000
"ffffff" The millionths of a second in a date and time value.
6/15/2009 13:45:30.617542 -> 617542
6/15/2009 13:45:30.0000005 -> 000000
Non-zero fraction of a second
"F" If non-zero, the tenths of a second in a date and time value.
6/15/2009 13:45:30.617 -> 6
6/15/2009 13:45:30.050 -> (no output)
"FF" If non-zero, the hundredths of a second in a date and time value.
6/15/2009 13:45:30.617 -> 61
6/15/2009 13:45:30.005 -> (no output)
"FFF" If non-zero, the milliseconds in a date and time value.
6/15/2009 13:45:30.617 -> 617
6/15/2009 13:45:30.0005 -> (no output)
"FFFF" If non-zero, the ten thousandths of a second in a date and time value.
6/1/2009 13:45:30.5275 -> 5275
6/15/2009 13:45:30.00005 -> (no output)
"FFFFF" If non-zero, the hundred thousandths of a second in a date and time value.
6/15/2009 13:45:30.61754 -> 61754
6/15/2009 13:45:30.000005 -> (no output)
"FFFFFF" If non-zero, the millionths of a second in a date and time value.
6/15/2009 13:45:30.617542 -> 617542
6/15/2009 13:45:30.0000005 -> (no output)
"FFFFFFF" If non-zero, the ten millionths of a second in a date and time value.
6/15/2009 13:45:30.6175425 -> 6175425
6/15/2009 13:45:30.0001150 -> 000115
AM/PM designator
"t" The first character of the AM/PM designator.
6/15/2009 1:45:30 PM -> P (en-US)
6/15/2009 1:45:30 PM -> 午 (ja-JP)
6/15/2009 1:45:30 PM -> (fr-FR)
"tt" The AM/PM designator.
6/15/2009 1:45:30 PM -> PM (en-US)
6/15/2009 1:45:30 PM -> 午後 (ja-JP)
6/15/2009 1:45:30 PM -> (fr-FR)
Timezone
"z" Hours offset from UTC, with no leading zeros.
6/15/2009 1:45:30 PM -07:00 -> -7
"zz" Hours offset from UTC, with a leading zero for a single-digit value.
6/15/2009 1:45:30 PM -07:00 -> -07
"zzz" Hours and minutes offset from UTC.
6/15/2009 1:45:30 PM -07:00 -> -07:00
"K" Time zone information.
6/15/2009 1:45:30 PM, Kind Unspecified ->
6/15/2009 1:45:30 PM, Kind Utc -> Z
6/15/2009 1:45:30 PM, Kind Local -> -07:00 (depends on local computer settings)
Miscellaneous
":" The time separator.
6/15/2009 1:45:30 PM -> : (en-US)
6/15/2009 1:45:30 PM -> . (it-IT)
6/15/2009 1:45:30 PM -> : (ja-JP)
"/" The date separator.
6/15/2009 1:45:30 PM -> / (en-US)
6/15/2009 1:45:30 PM -> - (ar-DZ)
6/15/2009 1:45:30 PM -> . (tr-TR)
'string'
"string"
Literal string delimiter.
6/15/2009 1:45:30 PM ("arr:" h:m t) -> arr: 1:45 P
6/15/2009 1:45:30 PM ('arr:' h:m t) -> arr: 1:45 P
"\" The escape character.
6/15/2009 1:45:30 PM (h \h) -> 1 h