Free MuleSoft CONNECT Keynote & Expo Pass Available!

Register now+
Nav

Examples: Parsing Dates with DataWeave

The examples define a function (fun) in the DataWeave header to normalize date separators (/, ., and -) within different date formats so that all of them use the same separator (-).

The examples use these functions:

  • replace so that all dates match a single pattern.

  • mapObject to run through the the date elements. The script applies the normalizing function to each date.

  • as (in the second DataWeave script) to change the data type of the values to a Date type with a specific date format.

Example: Returns Dates as String Types

Input

         
      
1
2
3
4
5
<dates>
  <date>26-JUL-16</date>
  <date>27/JUL/16</date>
  <date>28.JUL.16</date>
</dates>
DataWeave

         
      
1
2
3
4
5
6
7
8
%dw 2.0
output text/xml
fun normalize(date) date replace "/" with "-" replace "." with "-"
---

dates: (payload.dates mapObject {
    normalized_as_string: normalize($.date)
})
Output (dates are String types)

         
      
1
2
3
4
5
6
<?xml version='1.0' encoding='US-ASCII'?>
<dates>
  <normalized_as_string>26-JUL-16</normalized_as_string>
  <normalized_as_string>27-JUL-16</normalized_as_string>
  <normalized_as_string>28-JUL-16</normalized_as_string>
</dates>

Example: Returns Dates as Date Types

Input

         
      
1
2
3
4
5
<dates>
  <date>26-JUL-16</date>
  <date>27/JUL/16</date>
  <date>28.JUL.16</date>
</dates>
DataWeave

         
      
1
2
3
4
5
6
7
8
%dw 2.0
output text/xml
fun normalize(date) date replace "/" with "-" replace "." with "-"
---
// Outputs date values as Date types in the specified format
dates: (payload.dates mapObject {
    normalized_as_date: normalize($.date) as Date {format: "d-MMM-yy"}
})
Output (dates are Date types)

         
      
1
2
3
4
5
6
<?xml version='1.0' encoding='US-ASCII'?>
<dates>
  <normalized_as_date>2016-07-26</normalized_as_date>
  <normalized_as_date>2016-07-27</normalized_as_date>
  <normalized_as_date>2016-07-28</normalized_as_date>
</dates>