moment.js Appcelerator更改日期格式的语言

时间:2017-07-14 12:04:46

标签: appcelerator momentjs

我实现了一个可滚动的视图,每个视图都有一个带有标题,日期和时间(以特定格式)和语言的视图。 我想以下面提到的语言显示日期和时间,并更新该国家/地区的当地时间,例如,日期和时间以德语显示,因此显示的日期和时间应为德国的时区。但我似乎无法这样做。有什么建议吗?

这是我的.xml文件

  <Alloy>
        <View class="container">
            <View class="titleClass">
                <Label class="titleLabelClass" backgroundColor="yellow" top="5%" onClick="nextController">moment.js Example</Label>
            </View>
            <ScrollableView class ="scrollableClass" backgroundColor="gray">
                <View>
                    <Label class = "info1">Displaying Date and Language using moment.js Library</Label>
                    <Label class="dateClass1" id="dateIdScroll1"></Label>
                    <Label class="languageClass1" id="langIDScroll1"></Label>
                </View>
                <View>
                    <Label class = "info2">Displaying Date and Language using moment.js Library</Label>
                    <Label class="dateClass2" id="dateIdScroll2"></Label>
                    <Label class="languageClass2" id="langIDScroll2"></Label>
                </View>
                <View>
                    <Label class = "info3">Displaying Date and Language using moment.js Library</Label>
                    <Label class="dateClass3" id="dateIdScroll3"></Label>
                    <Label class="languageClass3" id="langIDScroll3"></Label>
                </View>
                <View>
                    <Label class = "info4">Displaying Date and Language using moment.js Library</Label>
                    <Label class="dateClass4" id="dateIdScroll4"></Label>
                    <Label class="languageClass4" id="langIDScroll4"></Label>
                </View>
            </ScrollableView>
        </View>
        <View class="dateTimeFormatClass1" layout="horizontal" top="20%" backgroundColor="yellow">
            <Label class="formatClass1" id="format1"></Label>
            <Label class="changedFormatClass1" id="changedFormat1"></Label>
        </View>
        <View class="dateTimeFormatClass2" layout="horizontal">
            <Label class="formatClass2" id="format2"></Label>
            <Label class="changedFormatClass2" id="changedFormat2"></Label>
        </View>
        <View class="dateTimeFormatClass3" layout="horizontal">
            <Label class="formatClass3" id="format3"></Label>
            <Label class="changedFormatClass3" id="changedFormat3"></Label>
        </View>
            <!-- <View top="30%" backgroundColor="yellow">
                <Button class="nextClass" onClick="nextController" top="5%" backgroundColor="red" title="next"></Button>
            </View> -->
    </Alloy>

这是我的.js文件

var args = $.args;
var moment = require("alloy/moment");
// moment().format();
function nextController(e) {
    var next = Alloy.createController('listviewPOC').getView();
    Alloy.Globals.parent.add(next);
}

function showTime() {
    $.dateIdScroll1.text = moment().format('MMMM Do YYYY, h:mm:ss a');
    $.langIDScroll1.text = moment().locale("en");
    $.dateIdScroll2.text = moment().format('MMMM Do YYYY, h:mm:ss a');
    $.langIDScroll2.text = moment().locale();
    $.dateIdScroll3.text = moment().format('MMMM Do YYYY, h:mm:ss a');
    $.langIDScroll3.text = moment().locale();
    $.dateIdScroll4.text = moment().format('MMMM Do YYYY, h:mm:ss a');
    $.langIDScroll4.text = moment().locale();
}
showTime();
setInterval(showTime, 500);

1 个答案:

答案 0 :(得分:1)

首先,将moment.js lib设置为您想要的语言环境。你可以在alloy.js中做到这一点:

var moment = require('alloy/moment');
moment.locale('de');

或者,如果您希望自己的应用自动设置它:

moment.locale(Ti.Locale.currentLanguage);

之后,您将尽可能使用localized format tokens

所以

$.dateIdScroll1.text = moment().format('MMMM Do YYYY, h:mm:ss a');

会变成类似的东西:

$.dateIdScroll1.text = moment().format('LLLL');

如果您需要调整或修改区域设置,请查看customization section