我在字符串中有一个日期,在字符串中有一个时间,现在我只需要将它们以RFC 3339格式添加并将其插入到不带字符串的事件对象中。你可以在下面看到我的代码
String date_from=req.getParameter("date_from").toString();
String date_end=req.getParameter("date_end").toString();
String time_from=req.getParameter("time_from").toString();
String time_to=req.getParameter("time_to").toString();
// here i m converting date_from which is string into Date object
java.sql.Date dateFrom= java.sql.Date.valueOf(date_from);
java.sql.Date dateTo= java.sql.Date.valueOf(date_end);
String dateTimeStart=date_from+"T"+time_from+"Z";
String dateTimeTo=date_end+"T"+time_to+"Z";
//now here i just need to convert (string)dateTimeStart into object so that i able to use into my event class
Event event = new Event();
event.setSummary(userName);
DateTime start = new DateTime(dateFrom, TimeZone.getTimeZone("Asia/Kolkata"));
DateTime end = new DateTime(dateTo, TimeZone.getTimeZone("Asia/Kolkata"));
嗨,我试图更清楚地说明我的疑问是什么:
DateTime end = new DateTime(dateTo, TimeZone.getTimeZone("Asia/Kolkata"));
请参阅上面的代码行,在第一个参数中,我希望格式为"YYYY-MM-ddTHH:mm:ssZ",我在变量"dateTo"中的日期"yyyy-MM-dd"不包含时间,it.so 以小时、因努特和秒为单位获取时间,我在变量中花费时间time_to
String time_to=req.getParameter("time_to").toString();
我使用以下代码段转换为日期对象,并在上面的第一行中使用
java.sql.Date dateTo= java.sql.Date.valueOf(date_end);
我对时间所做的同样,但是当我尝试同时确认日期和时间时,当我将其用作以下代码行中的第一个参数时,它会给我一个错误
DateTime end = new DateTime(dateTo, TimeZone.getTimeZone("Asia/Kolkata"));
使用 new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
解析/格式化日期。查看 SimpleDateFormat JavaDoc 了解详细信息。
使用 java.time,对RFC3339随时间配置文件进行非常严格的解释,如下所示:
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.ResolverStyle;
import static java.time.temporal.ChronoField.*;
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendValue(YEAR, 4)
.appendLiteral('-')
.appendValue(MONTH_OF_YEAR, 2)
.appendLiteral('-')
.appendValue(DAY_OF_MONTH, 2)
.appendLiteral('T')
.appendValue(HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(MINUTE_OF_HOUR, 2)
.appendLiteral(':')
.appendValue(SECOND_OF_MINUTE, 2)
.optionalStart()
.appendFraction(MILLI_OF_SECOND, 0, 9, true)
.optionalEnd()
.appendOffset("+HH:MM", "Z")
.toFormatter()
.withResolverStyle(ResolverStyle.STRICT)
.withChronology(IsoChronology.INSTANCE);
ZonedDateTime zdt = ZonedDateTime.parse("2021-09-24T12:00:00.001+02:00", formatter);
String str = zdt.format(formatter);