如何在JavaScript中将日期转换为另一种格式?

时间:2017-02-06 12:26:14

标签: javascript date reactjs

我从API获取日期

 2017-04-20T07:00:00Z

我如何将其格式化为以下内容?

 20.04.2017

我使用React显示日期:

<div>{props.data.day}</div>

我尝试过例如 toISOString()。slice(0,10); 但是无法正常工作。我也尝试过寻找其他答案,但还没有找到解决方案。

5 个答案:

答案 0 :(得分:1)

以下内容无需任何第三方库即可使用:

public void deleteRecursive(File fileOrDirectory) {

        if (fileOrDirectory.isDirectory()) {
            for (File child : fileOrDirectory.listFiles()) {
                if (child.getName().equals("myfile40")) {

                    System.out.println("File 40 - Not deleted");
                } else {
                    deleteRecursive(child);
                }
        }

        fileOrDirectory.delete();


    } 

这给出了:

console.log(convertDate(new Date("2017-04-20T07:00:00Z")));

function convertDate(date) {
    var day = date.getDate();
    day = day < 10 ? "0" + day : day;
    var month = date.getMonth() + 1;
    month = month < 10 ? "0" + month : month;
    var year = date.getFullYear();
    return day + "." + month + "." + year;
}

您需要将此功能作为一项功能添加到您的组件中,并将返回值作为20.04.2017 的内容。

请注意,正如其他答案中所述,您最好使用可以处理时区和其他基于时间的问题的第三方库,而无需考虑它。

答案 1 :(得分:1)

您可以使用MomentJS来解析和格式化日期字符串。选择一个已经为您完成此操作的库。你应该担心你的业务逻辑。使用成熟;广泛使用的图书馆为你做繁重的工作。

&#13;
&#13;
console.log(moment('2017-04-20T07:00:00Z', moment.ISO_8601).format('DD.MM.YYYY'));
&#13;
.as-console-wrapper { top: 0; max-height: 100% !important; }
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
&#13;
&#13;
&#13;

软件开发的一部分是代码重用。由于您没有开发日期库,因此您不必担心创建日期库。

答案 2 :(得分:1)

如果您将日期存储为字符串,则可以这样转换:

#include <stdio.h>

int main() {
    int i;
    while (1) {
        printf("Enter no?\n"); // step -1

        if (scanf(" %d", &i) > 0)   // step-2
            printf("Num=%d\n", i);
        else
            printf("Entered character.Pls enter int\n");
    }
}

这给出了:

var i ='2017-04-20T07:00:00Z';
var date = i.split('T');
console.log(date[0].split('-').reverse().join('.'))

答案 3 :(得分:0)

您可以使用Regex解析结果。

function convertDate(date){
    var parsedDate = date.match(/^([\d]{4})-([\d]{2})-([\d]{2})/)
    return parsedDate[2] + '.' + parsedDate[1] + '.' + parsedDate[0]
}
convertDate('2017-04-20T07:00:00Z')

答案 4 :(得分:0)

您可以提取日,月和全年,然后根据需要使用!

var oldDate = new Date('2017-04-20T07:00:00Z');

var d = oldDate.getDay().toString();
var m = oldDate.getMonth().toString();
var y = oldDate.getFullYear().toString();

if(d.length < 2){
    d = '0' + d;
}
if(m.length < 2){
    m = '0' + m;
}

var myDate = d + '/' + m + '/' + y;

window.alert(myDate);