在Dojo中将UTC或BST转换为本地用户时区

5uzkadbs  于 2022-12-16  发布在  Dojo
关注(0)|答案(3)|浏览(152)

我将日期字段设置为UTCBST时间,需要将其转换为本地时区。
这是我的职责

exports.date = function formatDate(vpDate) {
    return vpDate ? dateUtils.toString(vpDate) : " ";
};

这是我从现在起返回的内容这是我的示例vpDate ="04-Oct-2019 13:48";
我如何才能转换到相同格式的本地时区。我尝试使用toLocaleString和其他一些东西,但我无法正确获得它。
任何帮助都将不胜感激。
这是我如何使用dojo

columnConfiguration: {
            "auditDate": {
                formatter: formatters.date,
                sortable: true
            },
            "actionedBy": {
                sortable: true
            },
            "action": {
                formatter: _actionFormatter,
                sortable: true
            }
        }
    });

那么从这里我调用我上面的函数。

现在这是正确的,但格式是错误的

这是输出Fri Oct 04 2019 19:24:00 GMT+0530 (India Standard Time)
这是不对的

exports.date = function formatDate(vpDateObj) {
        var vpDate = locale.parse(dateUtils.toString(vpDateObj), {datePattern: "dd-MMM-yyyy HH:mm", selector: "date"});
        alert (vpDate);
        return vpDate ? vpDate.toString(vpDate) : " ";
    };
i1icjdpr

i1icjdpr1#

您可以使用dojo local:format函数将日期对象格式化为相应的格式,方法是使用locale.format并传递日期和包含要使用datePattern:"yourpattern"转换的模式的对象
请参阅下面的片段如何工作:

require(["dojo/date/locale"
], function(locale) {
  var vpDate  = new Date();
  
  var format1 = locale.format( vpDate , {selector:"date", datePattern:"ddMMyy" } );
  
  var format2 = locale.format( vpDate , {selector:"date", datePattern:"MM-dd-yyyy" } );
  
    var format3 = locale.format( vpDate , {selector:"date", datePattern:"MM / dd / yyyy ss:mm:SSS" } );
    
    
  console.log("ddMMyy -----> ", format1);
  console.log("MM-dd-yyyy -> ",format2);
  console.log("MM /dd/yyyy ss:mm:SSS -> ",format3);
  
});
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet" />
<script>
  dojoConfig = {
    parseOnLoad: true,
    async: true
  };
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js"></script>
ccrfmcuu

ccrfmcuu2#

Dojo支持日期格式,如下所述:https://dojotoolkit.org/reference-guide/1.10/dojo/date/locale/format.html
以下格式的字符串:04-Oct-2019 13:48
对应于此格式规范:dd-MMM-yyyy HH:mm

g6baxovj

g6baxovj3#

您可以使用formatDate();函数。formatDate()根据时区显示正确的日期和时间

function formatDate(date) {
      return date.getFullYear() + '/' + 
      (date.getMonth() + 1) + '/' + 
      date.getDate() + ' ' + 
      date.getHours() + ':' + 
      date.getMinutes();
     }

     const seoul = new Date(1489199400000);

     formatDate(seoul);  // 2017/3/11 11:30

相关问题