﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
en_AE{
    Version{"38"}
    calendar{
        chinese{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM r(U)",
                "d MMMM r(U)",
                "d MMM r",
                "dd/MM/r",
                "{1}, {0}",
                "{1} 'at' {0}",
                "{1} 'at' {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            availableFormats{
                Ed{"E d"}
                GyMMMEd{"E, d MMM r(U)"}
                GyMMMd{"d MMM r"}
                M{"LL"}
                MEd{"E, dd/MM"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"dd/MM"}
                UMMMd{"d MMM U"}
                UMd{"dd/MM/U"}
                yMd{"dd/MM/r"}
                yyyyM{"MM/r"}
                yyyyMEd{"E, dd/MM/r"}
                yyyyMMMEd{"E, d MMM r(U)"}
                yyyyMMMd{"d MMM r"}
                yyyyMd{"dd/MM/r"}
            }
            intervalFormats{
                MEd{
                    M{"E dd/MM – E dd/MM"}
                    d{"E dd/MM – E dd/MM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d – E d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d – d MMM"}
                }
                Md{
                    M{"dd/MM – dd/MM"}
                    d{"dd/MM – dd/MM"}
                }
                yM{
                    M{"MM/y – MM/y"}
                    y{"MM/y – MM/y"}
                }
                yMEd{
                    M{"E, dd/MM/y – E, dd/MM/y"}
                    d{"E, dd/MM/y – E, dd/MM/y"}
                    y{"E, dd/MM/y – E, dd/MM/y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM U"}
                    d{"E, d – E, d MMM U"}
                    y{"E, d MMM U – E, d MMM U"}
                }
                yMMMd{
                    M{"d MMM – d MMM U"}
                    d{"d – d MMM U"}
                    y{"d MMM U – d MMM U"}
                }
                yMd{
                    M{"dd/MM/y – dd/MM/y"}
                    d{"dd/MM/y – dd/MM/y"}
                    y{"dd/MM/y – dd/MM/y"}
                }
            }
        }
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y GGGGG",
                "{1}, {0}",
                "{1} 'at' {0}",
                "{1} 'at' {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            availableFormats{
                EBhm{"E, h:mm B"}
                EBhms{"E, h:mm:ss B"}
                EHm{"E, HH:mm"}
                EHms{"E, HH:mm:ss"}
                Ed{"E d"}
                Ehm{"E, h:mm a"}
                Ehms{"E, h:mm:ss a"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                M{"LL"}
                MEd{"E, d/M"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"dd/MM"}
                yyyyM{"MM/y GGGGG"}
                yyyyMEd{"E, dd/MM/y GGGGG"}
                yyyyMMMEd{"E, d MMM y G"}
                yyyyMMMd{"d MMM y G"}
                yyyyMd{"dd/MM/y GGGGG"}
            }
            intervalFormats{
                MEd{
                    M{"E dd/MM – E dd/MM"}
                    d{"E dd/MM – E dd/MM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d – E d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d – d MMM"}
                }
                Md{
                    M{"dd/MM – dd/MM"}
                    d{"dd/MM – dd/MM"}
                }
                yM{
                    M{"MM/y – MM/y GGGGG"}
                    y{"MM/y – MM/y GGGGG"}
                }
                yMEd{
                    M{"E, dd/MM/y – E, dd/MM/y GGGGG"}
                    d{"E, dd/MM/y – E, dd/MM/y GGGGG"}
                    y{"E, dd/MM/y – E, dd/MM/y GGGGG"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM y G"}
                    d{"E, d – E, d MMM y G"}
                    y{"E, d MMM y – E, d MMM y G"}
                }
                yMMMd{
                    M{"d MMM – d MMM y G"}
                    d{"d – d MMM y G"}
                    y{"d MMM y – d MMM y G"}
                }
                yMd{
                    M{"dd/MM/y – dd/MM/y GGGGG"}
                    d{"dd/MM/y – dd/MM/y GGGGG"}
                    y{"dd/MM/y – dd/MM/y GGGGG"}
                }
            }
        }
        gregorian{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM/y",
                "{1}, {0}",
                "{1} 'at' {0}",
                "{1} 'at' {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            availableFormats{
                EBhm{"E, h:mm B"}
                EBhms{"E, h:mm:ss B"}
                Ed{"E d"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                MEd{"E, dd/MM"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"dd/MM"}
                Md{"dd/MM"}
                yM{"MM/y"}
                yMEd{"E, dd/MM/y"}
                yMMMEd{"E, d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"dd/MM/y"}
            }
            intervalFormats{
                MEd{
                    M{"E dd/MM – E dd/MM"}
                    d{"E dd/MM – E dd/MM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d – E d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d – d MMM"}
                }
                Md{
                    M{"dd/MM – dd/MM"}
                    d{"dd/MM – dd/MM"}
                }
                yM{
                    M{"MM/y – MM/y"}
                    y{"MM/y – MM/y"}
                }
                yMEd{
                    M{"E, dd/MM/y – E, dd/MM/y"}
                    d{"E, dd/MM/y – E, dd/MM/y"}
                    y{"E, dd/MM/y – E, dd/MM/y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM y"}
                    d{"E, d – E, d MMM y"}
                    y{"E, d MMM y – E, d MMM y"}
                }
                yMMMd{
                    M{"d MMM – d MMM y"}
                    d{"d – d MMM y"}
                    y{"d MMM y – d MMM y"}
                }
                yMd{
                    M{"dd/MM/y – dd/MM/y"}
                    d{"dd/MM/y – dd/MM/y"}
                    y{"dd/MM/y – dd/MM/y"}
                }
            }
        }
    }
}
