A TypeScript library that provides .NET-compatible date/time and numeric formatting for JavaScript/TypeScript applications. This library implements format string parsing and formatting similar to Microsoft's .NET Framework, enabling cross-platform compatibility for applications that need to maintain consistent formatting between .NET and JavaScript/TypeScript.
Built on top of JavaScript's Intl API for locale-aware formatting while maintaining compatibility with .NET format string syntax.
npm install @pbkware/dot-net-date-number-formatting
import { DotNetDateTimeFormatter, DotNetLocaleSettings } from '@pbkware/dot-net-date-number-formatting';
const formatter = new DotNetDateTimeFormatter();
formatter.localeSettings = DotNetLocaleSettings.createInvariant();
// Standard format
formatter.trySetFormat('d'); // Short date
console.log(formatter.toString(new Date(2024, 6, 5))); // "7/5/2024"
// Custom format
formatter.trySetFormat('yyyy-MM-dd HH:mm:ss');
console.log(formatter.toString(new Date(2024, 6, 5, 14, 30, 0))); // "2024-07-05 14:30:00"
import { DotNetFloatFormatter, DotNetLocaleSettings } from '@pbkware/dot-net-date-number-formatting';
const formatter = new DotNetFloatFormatter();
formatter.localeSettings = DotNetLocaleSettings.createInvariant();
// Currency format
formatter.trySetFormat('C2');
console.log(formatter.toString(1234.56)); // "$1,234.56"
// Custom format
formatter.trySetFormat('#,##0.00');
console.log(formatter.toString(1234.56)); // "1,234.56"
import { DotNetDateTimeFormatter, DotNetDateTimeStyles } from '@pbkware/dot-net-date-number-formatting';
const formatter = new DotNetDateTimeFormatter();
formatter.styles = DotNetDateTimeStyles.allowWhiteSpaces;
formatter.trySetFormat('yyyy-MM-dd');
const result = formatter.tryFromString('2024-07-05');
if (result.isOk()) {
console.log(result.value); // Fri Jul 05 2024 00:00:00
}
import { DotNetFloatFormatter, DotNetNumberStyles } from '@pbkware/dot-net-date-number-formatting';
const formatter = new DotNetFloatFormatter();
formatter.styles = DotNetNumberStyles.number;
const result = formatter.tryFromString('1,234.56');
if (result.isOk()) {
console.log(result.value); // 1234.56
}