如何解析0001-01-01T00:00:00Z到我的特定时区并只显示时间?
例如: 2017-11-22T22:00:00Z 至2017-11-22 23:00
因为我的时区比第一个字符串的时区提前一小时,所以我希望你理解!
答案 0 :(得分:4)
如果使用Java 8,您可以将其解析为Instant
,然后将其转换为您需要的时区中的ZonedDateTime
。然后,您可以从ZonedDateTime
获取当地时间。
Instant instant = Instant.parse("2017-11-22T22:00:00Z");
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(zdt.toLocalTime());
您还可以指定系统默认值以外的特定区域ID。要查看可供选择的区域ID,请使用ZoneId.getAvailableZoneIds())
使用ZonedDateTime
可以处理夏令时。如果您只需要静态小时偏移量,则可以将其转换为OffsetDateTime
而不是ZonedDateTime
。
答案 1 :(得分:1)
首先,将您的字符串解析为 public ActionResult SignUp(string email,string username,string password)
{
var data = db.Users.Where(x => x.Nick == username || x.Email==email).SingleOrDefault();
Users user= new Users();
if (data== null)
{
ModelState.AddModelError("", "Username is valid");
}
else
{
uye.Nick = username;
uye.Email = email;
uye.Password= password;
db.Users.Add(user);
db.SaveChanges();
}
return RedirectToAction("HomePage","Home");
}
,然后将其转换为所需区域中的Instant
;从那里,你可以获得ZoneDateTime
LocalTime
答案 2 :(得分:-1)
main::using