transform()
Transforms date strings from one format to another. This is a convenience function that combines parse() and format() operations.
Syntax
transform(dateString, sourceFormat, targetFormat[, parserOptions, formatterOptions])Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
dateString | string | Yes | The input date string to transform |
sourceFormat | string | CompiledObject | Yes | Source format pattern or compiled pattern |
targetFormat | string | CompiledObject | Yes | Target format pattern or compiled pattern |
parserOptions | ParserOptions | No | Options for parsing the source string |
formatterOptions | FormatterOptions | No | Options for formatting the target string |
Returns
string - The transformed date string in the target format
Basic Examples
Format Transformation
import { transform } from 'date-and-time';
// ISO to US formatconst result = transform('2025-08-23', 'YYYY-MM-DD', 'MM/DD/YYYY');console.log(result); // '08/23/2025'
// Add time componentsconst withTime = transform('2025-08-23', 'YYYY-MM-DD', 'DD/MM/YYYY HH:mm:ss');console.log(withTime); // '23/08/2025 00:00:00'Time Format Conversion
// 24-hour to 12-hour formatconst time12 = transform('14:30:45', 'HH:mm:ss', 'h:mm:ss A');console.log(time12); // '2:30:45 PM'
// 12-hour to 24-hour formatconst time24 = transform('2:30:45 PM', 'h:mm:ss A', 'H:mm:ss');console.log(time24); // '14:30:45'With Localized Formats
import es from 'date-and-time/locales/es';
// Transform Spanish to English UTCconst localized = transform( 'viernes, 23 ago 2025 14:30:45 GMT+0200', 'dddd, DD MMM YYYY HH:mm:ss [GMT]Z', 'ddd, DD MMM YYYY HH:mm:ss [GMT]', { locale: es });console.log(localized); // 'Fri, 23 Aug 2025 12:30:45 GMT'Using Compiled Patterns
import { compile, transform } from 'date-and-time';
// Precompile for better performanceconst sourcePattern = compile('YYYY-MM-DD HH:mm:ss');const targetPattern = compile('DD/MM/YYYY h:mm:ss A');
const result = transform( '2025-08-23 14:30:45', sourcePattern, targetPattern);console.log(result); // '23/08/2025 2:30:45 PM'Use Cases
API Response Transformation
function normalizeApiDates(apiResponse: any) { // Transform API dates to display format if (apiResponse.created_at) { apiResponse.created_at = transform( apiResponse.created_at, 'YYYY-MM-DD[T]HH:mm:ss[Z]', 'MMM DD, YYYY [at] h:mm A' ); } return apiResponse;}
const data = { created_at: '2025-08-23T14:30:45Z' };console.log(normalizeApiDates(data));// { created_at: 'Aug 23, 2025 at 2:30 PM' }Batch Format Conversion
function convertDateFormats(dates: string[], sourceFormat: string, targetFormat: string) { return dates.map(date => transform(date, sourceFormat, targetFormat));}
const dates = ['2025-08-23', '2025-08-24', '2025-08-25'];const converted = convertDateFormats(dates, 'YYYY-MM-DD', 'DD/MM/YYYY');console.log(converted);// ['23/08/2025', '24/08/2025', '25/08/2025']Form Input Standardization
function standardizeUserInput(userDate: string, userFormat: string) { // Always convert user input to ISO format for storage return transform(userDate, userFormat, 'YYYY-MM-DD');}
const userInput = '23/08/2025';const standardized = standardizeUserInput(userInput, 'DD/MM/YYYY');console.log(standardized); // '2025-08-23'Implementation Details
The transform() function is a convenience wrapper that internally:
- Parses the input string using the source format
- Formats the resulting Date object using the target format
// transform() is equivalent to:const date = parse(dateString, sourceFormat);const result = format(date, targetFormat);
// But provides a cleaner API:const result = transform(dateString, sourceFormat, targetFormat);