dotnetstrftime

Creator: coderz1093

Last updated:

0 purchases

dotnetstrftime Image
dotnetstrftime Images

Languages

Categories

Add to Cart

Description:

dotnetstrftime

Dart package that offers support for formatting DateTime's according to the same rules as .NET does with their Format Strings.
There are some quirks: Because this package is based on both Intl and Timezone, some of the formatting available doesn't line up 1:1 with .NET. as an example, using the italian locale it, the time separator should return ., but instead it currently returns :. For the most part, the mismatches are small.
Usage #
Singleton #
// May 8th, 2023 T 2:42:33.2332
var dtWithEmptyMilliseconds = DateTime(2023, 05, 08, 14, 42, 50, 000, 678);

// Formatting with a raw character, in multiple mode
dtWithEmptyMilliseconds.formatAsDotNET("d"); // "5/8/2023"
copied to clipboard
Multiple #
// May 8th, 2023 T 2:42:33.2332
var dtWithEmptyMilliseconds = DateTime(2023, 05, 08, 14, 42, 50, 000, 678);

// Formatting with a raw character, in singleton mode
dtWithEmptyMilliseconds.formatAsDotNET("dd-MM-yy"); // "05-08-23"
copied to clipboard
Supported Tokens #
When only one token is supplied, the parser enters singleton mode, which parses specific tokens as short-hand for fully formed regular date formats:
Singleton Tokens #



Token
.NET
This Dart Package
Description
Output




d


Short date pattern.
2009-06-15T13:45:30 -> 6/15/2009 (en-US)


f


Full date/time pattern (short time).
2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US)


F


Full date/time pattern (long time).
2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US)


g


General date/time pattern (short time).
2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US)


m


Month/day pattern.
2009-06-15T13:45:30 -> June 15 (en-US)


s


Sortable date/time pattern.
2009-06-15T13:45:30 -> 2009-06-15T13:45:30


t


Short time pattern.
2009-06-15T13:45:30 -> 1:45 PM (en-US)


y


Year month pattern.
2009-06-15T13:45:30 -> June 2009 (en-US)


z







Multiple Tokens #
When multiple tokens are supplied, the parser will parse each token individually, allowing construction of to-order time formats:



Token
.NET
This Dart Package
Description
Output




d


Day of month from 0 through 31
2009-06-01T13:45:30 -> 01


dd


Day of month pattern from 00 through 31
2009-06-01T13:45:30 -> 01


ddd


Abbreviated Day of month pattern
2009-06-15T13:45:30 -> Mon (en-US)


dddd


Full day of month pattern
2009-06-15T13:45:30 -> Monday (en-US)


D


Long date pattern.
2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)


f


Tens of seconds
2009-06-15T13:45:30.617542 -> 6


ff


Hundreths of seconds
2009-06-15T13:45:30.617542 -> 61


fff


The milliseconds in a date and time value.
6/15/2009 13:45:30.617542 -> 617


ffff


The ten thousandths of a second in a date and time value.
2009-06-15T13:45:30.617542 -> 6175


fffff


The hundred thousandths of a second in a date and time value.
2009-06-15T13:45:30.617542 -> 61754


ffffff


The millionths of a second in a date and time value.
2009-06-15T13:45:30.6175420 -> 617542


fffffff


The ten millionths of a second in a date and time value.
2009-06-15T13:45:30.6175425 -> 6175425


F


If non-zero, Tens of seconds
2009-06-15T13:45:30.617542 -> 62009-06-15T13:45:30.0050000 -> (no output)


FF


If non-zero, Hundreths of seconds
2009-06-15T13:45:30.617542 -> 612009-06-15T13:45:30.0050000 -> (no output)


FFF


If non-zero, The milliseconds in a date and time value
2009-06-15T13:45:30.617542 -> 612009-06-15T13:45:30.0050000 -> (no output)


FFFF


If non-zero, The ten thousandths of a second in a date and time value.
2009-06-15T13:45:30.617542 -> 6172009-06-15T13:45:30.0050000 -> (no output)


FFFFF


If non-zero, The hundred thousandths of a second in a date and time value.
2009-06-15T13:45:30.617542 -> 61752009-06-15T13:45:30.0050000 -> (no output)


FFFFFF


If non-zero, The millionths of a second in a date and time value.
2009-06-15T13:45:30.617542 -> 617542009-06-15T13:45:30.0050000 -> (no output)


FFFFFFF


If non-zero, The ten millionths of a second in a date and time value.
2009-06-15T13:45:30.617542 -> 6175422009-06-15T13:45:30.0050000 -> (no output)


g


Period or Era
2009-06-15T13:45:30.6170000 -> A.D.


gg


Period or Era
2009-06-15T13:45:30.6170000 -> A.D.


G


General date/time pattern (long time).
2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)


h


The hour, using a 12-hour clock from 1 to 12.
2009-06-15T01:45:30 -> 12009-06-15T13:45:30 -> 1


hh


The hour, using a 12-hour clock from 01 to 12.
2009-06-15T01:45:30 -> 012009-06-15T13:45:30 -> 01


H


The hour, using a 24-hour clock from 0 to 23.
2009-06-15T01:45:30 -> 12009-06-15T13:45:30 -> 13


HH


The hour, using a 24-hour clock from 00 to 23
2009-06-15T01:45:30 -> 012009-06-15T13:45:30 -> 13


K


Time zone information.
2009-06-15T13:45:30, Kind Unspecified -> (no output) 2009-06-15T13:45:30, Kind Utc -> Z2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)


m


The minute, from 0 through 59.
2009-06-15T13:00:30 -> 0 (en-US)


mm


The minute, from 00 through 59.
2009-06-15T13:00:30 -> 00 (en-US)


M


Month/day pattern.
2009-06-15T13:45:30 -> June 15 (en-US)


M*


The month, from 1 through 12.
2009-06-15T13:45:30 -> 6


MM


The month, from 01 through 12.
2009-06-15T13:45:30 -> 06


MMM


The abbreviated name of the month.
2009-06-15T13:45:30 -> Jun (en-US)


MMMM


The full name of the month.
2009-06-15T13:45:30 -> June (en-US)


o


round-trip date/time pattern.
2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:00


O


round-trip date/time pattern.
2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:00


r


RFC1123 pattern.
2009-06-15T13:45:30 -> Mon, 15 Jun 2009 13:45:30 GMT


R


RFC1123 pattern.
2009-06-15T13:45:30 -> Mon, 15 Jun 2009 13:45:30 GMT


s


The second, from 0 through 59.
2009-06-15T13:45:09 -> 9


ss


The second, from 00 through 59.
2009-06-15T13:45:09 -> 09


t


The first character of the AM/PM designator.
009-06-15T13:45:30 -> P (en-US)


tt


The AM/PM designator.
009-06-15T13:45:30 -> PM (en-US)


T


Long time pattern.
2009-06-15T13:45:30 -> 1:45:30 PM (en-US)


TT

X




u


Universal sortable date/time pattern.
2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z


U


Universal full date/time pattern.
2009-06-15T13:45:30 -> Monday, June 15, 2009 8:45:30 PM (en-US)


y


The year, from 0 to 99.
0001-01-01T00:00:00 -> 1


yy


The year, from 00 to 99.
0001-01-01T00:00:00 -> 01


yyy


The year, with a minimum of three digits.
0001-01-01T00:00:00 -> 001


yyyy


The year as a four-digit number.
0001-01-01T00:00:00


yyyyy


The year as a five-digit number
0001-01-01T00:00:00 -> 00001


Y


Year-Month pattern
2009-06-15T13:45:30 -> June 2009 (en-US)


z


Hours offset from UTC
2009-06-15T13:45:30-07:00 -> -7


zz


Hours offset from UTC, with a leading zero for a single-digit value
2009-06-15T13:45:30-07:00 -> -07


zzz


Hours and minutes offset from UTC.
2009-06-15T13:45:30-07:00 -> -07:00


\


Escape character
987654 "###00#" -> #987654#


'string'


Literal string delimiter
68 "#" "degrees" -> 68 degrees


0

X
Zero placeholder
1234.5678 ("00000") -> 01235


#

X
Digit placeholder
1234.5678 ("#####") -> 1235


.

X
Decimal point
0.45678 ("0.00", en-US) -> 0.46


,

X
Group separator and number scaling
2147483647 ("##,#", en-US) -> 2,147,483,647


;

X
Section separator
0.3697 ("%#0.00", en-US) -> %36.97


%

X
Percentage placeholder
0.3697 ("%#0.00", en-US) -> %36.97




X
Per mille placeholder
0.03697 ("#0.00‰", en-US) -> 36.97‰


E0

X
Exponential notation



E+0

X
Exponential notation



E-0

X
Exponential notation



e0

X
Exponential notation
987654 ("#0.0e0") -> 98.8e4


e+0

X
Exponential notation
1.8901385E-16 ("0.0e+00") -> 1.9e-16


e-0

X
Exponential notation




String Literals #
Add your literal string in "quotation marks" to get a literal, unparsed string in the output:
final now = DateTime.now();
now.formatAsDotNET('dd "days"') // "15 days"
copied to clipboard
Contributing #
To contribute to this library, consider contributing to the underlying Timezone, or filing issues with Intl. For changes to this actual package, visit the github at https://github.com/0xNF/dart_.netstrftime

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.