2015-10-12 99 views
2
轉換爲日期格式騾子

我的要求是將字符串轉換爲騾子使用DataWeave使用DataWeave

輸入字符串

8/30/2015 4:00:13 PM 

輸出日期必須在日期格式MM/DD/YYYY格式即

08/30/2015 

我使用下面的邏輯

(($[1] splitBy " ")[0]) as :date{format:"[m01]/[d01]/[y0001]"} 
已經嘗試

這給

Exception while executing: 
"Order Date":(($[1] splitBy " ")[0]) as :date{format:"[m01]/[d01]/[y0001]"}, 
Cannot coerce a :string to a :date                                      ^

我使用的騾子Anypoint Studio版本錯誤:5.2.0

回答

-3

您可以使用此,

var newDate = new Date("8/30/2015 4:00:13 PM"); 
var dd = newDate.getDate(); 
var mm = newDate.getMonth()+1; //January is 0! 

var yyyy = newDate.getFullYear(); 
if(dd<10){ 
    dd='0'+dd 
} 
if(mm<10){ 
    mm='0'+mm 
} 
var formattedDate = mm+'/'+dd+'/'+yyyy; 
console.log(formattedDate); //Prints "08/30/2015" 

請參閱this

+0

這是一個Java腳本,而我的要求是用騾子功能或騾子表達語言。謝謝各位 –

5

首先你需要將其轉換爲localdatetime(無時區),然後轉換爲所需格式的字符串。

"8/30/2015 4:00:13 PM" 
    as :localdatetime {format: "M/dd/yyyy h:mm:ss a"} 
    as :string {format: "MM/dd/yyyy"} 

欲瞭解更多信息,請參閱。 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

All letters 'A' to 'Z' and 'a' to 'z' are reserved as pattern letters. The following pattern letters are defined: 

    Symbol Meaning      Presentation  Examples 
    ------ -------      ------------  ------- 
    G  era       text    AD; Anno Domini; A 
    u  year      year    2004; 04 
    y  year-of-era     year    2004; 04 
    D  day-of-year     number   189 
    M/L  month-of-year    number/text  7; 07; Jul; July; J 
    d  day-of-month    number   10 

    Q/q  quarter-of-year    number/text  3; 03; Q3; 3rd quarter 
    Y  week-based-year    year    1996; 96 
    w  week-of-week-based-year  number   27 
    W  week-of-month    number   4 
    E  day-of-week     text    Tue; Tuesday; T 
    e/c  localized day-of-week  number/text  2; 02; Tue; Tuesday; T 
    F  week-of-month    number   3 

    a  am-pm-of-day    text    PM 
    h  clock-hour-of-am-pm (1-12) number   12 
    K  hour-of-am-pm (0-11)  number   0 
    k  clock-hour-of-am-pm (1-24) number   0 

    H  hour-of-day (0-23)   number   0 
    m  minute-of-hour    number   30 
    s  second-of-minute   number   55 
    S  fraction-of-second   fraction   978 
    A  milli-of-day    number   1234 
    n  nano-of-second    number   987654321 
    N  nano-of-day     number   1234000000 

    V  time-zone ID    zone-id   America/Los_Angeles; Z; -08:30 
    z  time-zone name    zone-name   Pacific Standard Time; PST 
    O  localized zone-offset  offset-O   GMT+8; GMT+08:00; UTC-08:00; 
    X  zone-offset 'Z' for zero offset-X   Z; -08; -0830; -08:30; -083015; -08:30:15; 
    x  zone-offset     offset-x   +0000; -08; -0830; -08:30; -083015; -08:30:15; 
    Z  zone-offset     offset-Z   +0000; -0800; -08:00; 

    p  pad next     pad modifier  1 

    '  escape for text    delimiter 
    ''  single quote    literal   ' 
    [  optional section start 
    ]  optional section end 
    #  reserved for future use 
    {  reserved for future use 
    }  reserved for future use 
+0

謝謝!爲我工作! –

2

在DataWeave,您可以分析一個字符串以各種Java時間類型以及它們的格式返回字符串。在DataWeave日期格式

payload.date as :localdatetime {format: "M/dd/yyyy h:mm:ss a"} as :string {format: "MM/dd/yyyy"} 

Here's some more detail:嘗試解析之後的格式,像這樣。

0

喜在dataweave你可以寫表達這樣

formatedDate: |2003-10-01T23:57:59| as :string {format: "MM-dd-YYYY"}