如何解决如何获取原始时区中的日期/时间
我的应用程序从API接收了“日期T
时间±
时区”。我应该显示使用用户定义的首选项进行格式化时的确切时间:
var userFormat = "en-US"
var original = "2020-09-01T12:14:05.663-01:23" // strange timezone only to make a point
var date = new Date(original)
console.log(date.toLocaleString(userFormat,{
hour12: false,hour : "numeric",minute: "numeric",second: "numeric"}))
// expected: "12:14:05"
如何在获取原始字符串12:14:05
而不是本地时间或GMT时间的同时避免字符串操作?
解决方法
如果总是找到这种日期字符串,则可以拆分字符串并按如下所示找到时间。
class CustomerDetailUpdateView1(LoginRequiredMixin,UpdateView):
model = User
form_class = CustomerDetailUpdateForm1
template_name = 'customer/customer-profile1.html'
def get_object(self):
# print(forms.context_data)
return self.request.user
def get_success_url(self):
return reverse("customer:customer-update")
,
这可能很好:
<script type="text/javascript">
debugger
var userFormat = "en-US";
var original = "2020-09-01T12:14:05.663-01:23";
var time = original.substr(11,8);
var HH = time.substr(0,2);
var MM = time.substr(3,2);
var SS = time.substr(6,2);
var date = original.substr(0,10);
var YY = date.substr(0,4);
var MO = date.substr(5,2);
var DD = date.substr(8,2);
var Ndate = new Date(YY,MO,DD,HH,MM,SS);
// sometimes even the US needs 24-hour time
console.log(Ndate.toLocaleTimeString(userFormat,{
hour12: false,}));
</script>
,
您可以在转换之前从字符串中修剪时区,然后对结果使用常规日期方法(例如toLocaleString()
)。
var userFormat = "en-US"
var original = "2020-09-01T12:14:05.663-01:23"
// Trim off the timezone
var date = new Date(original.split('.')[0]);
console.log(date.toLocaleString(userFormat,{ hour: 'numeric',minute: 'numeric',second: 'numeric'
}))
// Expected: "12:14:05 PM"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。