我想将UTC时间转换为日期。它应将Date返回为
预期结果是:2020-09-01T08:44:25.654Z
输出为-> "Tue Sep 01 14:14:25 GMT+05:30 2020"
。
我得到UTC
,但它在String
中,我想要在format
中使用相同的Date datatype
。
我希望它具有以上Date
格式的UTC
。
有人知道如何获得吗?
public static Date convertToUtcTime(Date date) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(DateFormats.yyyyMMddThhmmssZ); //"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdf.parse(sdf.format(date));
}
我也不想使用toInstant方法
[更新]
Date strFromDate;
try {
strFromDate = AppUtils.convertToUtcTime(myCalendar.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
然后将strFromDate传递给api请求 我没有从strFromDate获得预期的结果
答案 0 :(得分:1)
您最喜欢的演员是谁?假设它是Amitabh Bachchan。不管他扮演什么角色,他都将保持自己的身份(这就是为什么导演/制作人下一个要约去找他的原因why)。他的表演根据角色来装饰他的外表。导演使用他的表演技巧所获得的是装饰角色,按照指定角色代表他。然后,您说Amitabh Bachchan为<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>logSign</title>
</head>
<body>
<form id="signup-form">
<input id="name1" type="text" placeholder="Username" value="" required>
<input id="pass1" type="password" placeholder="Password" value="" required>
<input id="signup_btn" type="submit" value="Signup">
</form>
<form id="login-form">
<input id="name2" type="text" placeholder="Username" value="" required>
<input id="pass2" type="password" placeholder="Password" value="" required>
<input id="login_btn" type="submit" value="Login">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$("#signup-form").submit(function () {
var nm1 = $("#name1").val();
var ps1 = $("#pass1").val();
localStorage.setItem("n1", nm1);
localStorage.setItem("p1", ps1);
});
$("#login-form").submit(function () {
var enteredName = $("#name2").val();
var enteredPass = $("#pass2").val();
var storedName = localStorage.getItem("n1");
var storedPass = localStorage.getItem("p1");
if (enteredName == storedName && enteredPass == storedPass) {
alert("You are logged in!");
}
else {
alert("Username and Password do not match!");
}
});
});
</script>
</body>
</html>
或Amitabh Bachchan为angry young man
等)
类似地,无论您要求coolie
采取什么样的外观(使用java.util.Date
),它总是表示否。距SimpleDateFormat
的毫秒数。它没有任何时区或时区偏移信息。 Java以这个毫秒为单位,根据JVM的时区来计算日期和时间,然后将获取的日期和时间与JVM的时区相结合,最后在调用其1970-01-01T00:00:00Z
方法时返回字符串。我相信您已经知道,当您使用toString()
打印对象时,将打印对象的System.out.println
方法返回的字符串。检查this,以获取toString()
的{{1}}实现的更多详细信息。 toString()
会根据模式更改java.util.Date
的外观。使用SimpeDateFormat
得到的是修饰的字符串,表示根据指定模式的java.util.Date
对象。然后,您说SimpeDateFormat
为Date
模式的字符串,或者说Date
为EEE MMMM dd, yyyy HH:mm
模式的字符串,等等。
摘要是:您无法通过指定不同的模式来更改Date
对象。如果您打印它,则将始终获得其yyyy-MM-dd HH:mm:ss
函数返回的字符串。如果需要其他字符串,可以使用Date
。
我建议您从过时且容易出错的toString()
日期时间API和SimpleDateFormat
切换到modern java.util
日期时间API和相应的格式化API (软件包SimpleDateFormat
)。从 Trail: Date Time 了解有关现代日期时间API的更多信息。
如果您的Android API级别仍不兼容Java8,请选中How to use ThreeTenABP in Android Project和Java 8+ APIs available through desugaring。