Parse platform 将带有日期字符串的列转换为日期列的云代码

Parse platform 将带有日期字符串的列转换为日期列的云代码,parse-platform,Parse Platform,在我的解析应用程序中,表中有一列被错误地定义为string,而它应该是一个日期。不幸的是,它已经填充了许多行。例如,字符串数据的格式为: 11 05 18 14 04 PDT (我相信会是:yy-MM-dd-hh-MM-z) 我想运行一个云代码作业,从每一行读取字符串数据,并将实际日期存储在另一列中(假设这个新列存在)。转换完成后,我会手动删除原始的、错误的字符串列 下面是我目前拥有的,除了导入的时区在转换过程中丢失(从PDT到GMT)之外,我现在正在工作 Parse.Cloud.job("pu

在我的解析应用程序中,表中有一列被错误地定义为string,而它应该是一个日期。不幸的是,它已经填充了许多行。例如,字符串数据的格式为:

11 05 18 14 04 PDT

(我相信会是:yy-MM-dd-hh-MM-z)

我想运行一个云代码作业,从每一行读取字符串数据,并将实际日期存储在另一列中(假设这个新列存在)。转换完成后,我会手动删除原始的、错误的字符串列

下面是我目前拥有的,除了导入的时区在转换过程中丢失(从PDT到GMT)之外,我现在正在工作

Parse.Cloud.job("publicationDateMigration", function(request, status) {
  // Set up to modify user data
  var moment = require('moment');
  Parse.Cloud.useMasterKey();
  var counter = 0;
  // Query for all episodes
  var PSEpisode = Parse.Object.extend("PSEpisode");
  var query = new Parse.Query(PSEpisode);
  query.doesNotExist("publicationDate")
  query.limit(10);

  query.find({
      success: function(results) {
        console.log("preparing for loop-");

        var i=0;
        while (results[i]){
    var convertedPubDate = moment(results[i].get('pubDate'), "YY MM DD HH mm ss Z").toDate();

    console.log(“unconverted date is " + results[i].get('pubDate'));
    console.log("converted date is " + convertedPubDate);

        results[i].set('publicationDate', convertedPubDate);
            i++;
        }

        Parse.Object.saveAll(results);
        status.success("Date migration completed successfully.");
      },
      error: function(error) {
       status.error("Uh oh, something went wrong with date conversion.");
      }
    });
});
根据说明,“Z”或“ZZ”占位符用于:时区偏移为
+07:00
+0700

它不理解“PDT”,所以您需要先进行替换,以将其转换为实际偏移量

var rawPubDate = results[i].get('pubDate');
var fixedPubDate = rawPubDate.replace('PDT', '-07:00');
fixedPubDate = fixedPubDate.replace('PST', '-08:00');
// add any others you need

var convertedPubDate = moment(fixedPubDate, 'YY MM DD HH mm ss Z').toDate();

console.log('pubDate: ' + rawPubDate 
    + ' -> ' + fixedPubDate 
    + ' -> ' + convertedPubDate);

// ... etc ...