我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
我写过这个函数:
public static XMLGregorianCalendar getXMLGregorianCalendar(String date) throws OmniException{
XMLGregorianCalendar xmlCalender=null;
GregorianCalendar calender = new GregorianCalendar();
calender.setTime(Util.stringToJavaDate(date));
xmlCalender = DatatypeFactory.newInstance().newXMLGregorianCalendar(calender);
return xmlCalender;
}
public static Date stringToJavaDate(String sDate) throws OmniException{
Date date=null;
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).parse(sDate);
return date;
}
Run Code Online (Sandbox Code Playgroud)
当我将"2014-01-07"输出日期作为2014-01-06T18:30:00:000Z
我出错的地方时,我正在通过日期?如果我想得到什么怎么办,2014-01-06T18:30:00并且2014-01-06T18:30:00Z
感谢任何帮助
我需要在java中解析一个字符串.我的字符串具有以下格式:
2014-09-17T12:00:44.0000000Z
Run Code Online (Sandbox Code Playgroud)
但Java试图解析这种格式时抛出以下异常... java.lang.IllegalArgumentException: Illegal pattern character 'T'.
关于如何解析的任何想法?
谢谢!
当我将特定格式应用于日期时出现解析异常。
SimpleDateFormat df = new SimpleDateFormat("hh:mm a");
try {
String s=timeSlotsArrayList.get(position).getScheduledStartTime();
Date d = df.parse(s);
times.setText(df.format(d));
}
catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
AM 正在获取而不是 PM 问题图像
我正在使用mongodb而且我注意到了ISODate("2016-11-07T20:22:48.743Z").此日期格式位于新创建的集合的字段值之一.我不知道是什么"743Z"意思,因为在剩余的原始中,所有都保存"0Z".
请帮我理解其含义.
我需要 java 类中 2022-10-03T19:45:47.844Z 格式的当前系统日期和时间。
我尝试使用 zoneddatetime 和简单日期格式,但无法从在线获取写入语法或代码。我是 Java 初学者,非常感谢任何帮助。谢谢。
java iso8601 datetime-format simpledateformat offsetdatetime
我有一个使用 Java 7 的系统,我需要生成一个与Instant.now(Java 8) 等效的日期。
例如,Instant.now().toString()生成如下日期:
“2018-12-19T12:32:46.816Z”
使用java.util.Date我有这个日期:“2018-12-19T10:38:13.892”
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sdf;
sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
String text = sdf.format(date);
System.out.println(text);
Run Code Online (Sandbox Code Playgroud)
我不知道是否可以简单地在该日期末尾连接一个“Z” 。
如果没有“Z”,另一个解析此日期的系统Instant.parse会抛出错误:
java.time.format.DateTimeParseException:无法在 java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1988) 的索引 23 处解析文本“2018-12-19T10:38:13.892” .base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1890) 在 java.base/java.time.Instant.parse(Instant.java:395)
我正在尝试转换字符串值“2018-10-11T12:00:00Z”;到 ZonedDateTime。如果我使用默认的 ZonedDateTime.parse(zonedDateTime) ,则 ss 部分即 00 被删除,并且我得到“2018-10-11T12:00Z”作为输出。
您能帮忙如何保留 00 作为 SS 部分吗?
String zonedDateTime = "2018-10-11T12:00:00Z";
ZonedDateTime z = ZonedDateTime.parse(zonedDateTime);
System.out.println(z); // return 2018-10-11T12:00Z
ZonedDateTime z1 = ZonedDateTime.parse (zonedDateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ") );
System.out.println(z1); // Exception : Text '2018-10-11T12:00:00Z' could not be parsed at index 19
Run Code Online (Sandbox Code Playgroud) 像下面这样的日期和时间格式是什么,例如:2001-07-26T20:52:54Z?
以及如何将日期和时间转换为该特定格式以及JSON字符串?
例如,如果用户以7/26/2001和20:52:54输入,我希望将其转换为2001-07-26T20:52:54Z格式。
谢谢
我的日期格式为“yyyy-MM-dd'T'HH:mm:ss.sssZ”。例如日期是“2018-07-17T09:59:51.312Z”。我正在使用下面的代码来解析 Java 中的字符串。
String date="2018-07-17T09:59:51.312Z";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");
Date transactionDateTime = simpleDateFormat.parse(date);
Run Code Online (Sandbox Code Playgroud)
这给了我“无法解析的日期:”异常。谁能告诉我如何做到这一点?
我在 Java 中遇到 Date 和 SimpleDateFormat 对象的一些问题。我知道我需要在 Java 8 中使用新的日期和时间 API 来切换它们,我想这样做,但我有一个问题。当我从数据库中检索我的日期时(它是 SimpleDateFormat 并且我无法更改它),并且当我想添加一些小时(例如下午 4 点),然后我需要在用户从下拉列表中选择的时区中(假设美国/加拉加斯),所以我希望美国/加拉加斯的结果是 16 小时,但在我的情况下是 16 小时 UTC + UTC 和美国/加拉加斯之间的差异。这是我的代码:
Date startDate -> it's value is Tue Feb 23 20:00:00 CET 2021
Date date = new SimpleDateFormat("yyy-MM-dd").format( startDate + 4:00PM + America/Caracas);
Run Code Online (Sandbox Code Playgroud)
但是,奇怪的是,这种格式化广告 4 PM 值但不知何故忽略了时区的那部分。所以,相反,我在美国/加拉加斯有 20 小时,我在 UTC 时间有 20 小时。有人可以帮助我吗?