Tag: datetime

解析ISO_INSTANT和类似的日期时间字符串

我昨天创造了这个精彩的静态方法 ,它工作得很好 – 昨天 但是,今天它给了我这个错误。 我想这是从Z之前的太多0。 任何人都可以推荐如何以简洁的方式(Java 8)解析这种类型的String格式日期 – 请记住它昨天也有效,所以ISO_INSTANT也是String的有效格式? Caused by: java.time.DateTimeException: Unable to obtain LocalDate from TemporalAccessor: {NanoOfSecond=0, InstantSeconds=1443451604, MilliOfSecond=0, MicroOfSecond=0},ISO of type java.time.format.Parsed at java.time.LocalDate.from(LocalDate.java:368) at java.time.LocalDateTime.from(LocalDateTime.java:456) … 9 more 输入时间抛出exception:“2015-09-28T14:46:44.000000Z” /** * * @param time the time in RFC3339 format (eg “2013-07-03T14:30:38Z” ) * @return */ public static LocalDateTime parseTimeINSTANT(String time) […]

如何使DateFormat猜测世纪?

我试图将“dd-MM-yy”格式的String解析为Date对象。 问题是它试图猜测日期的世纪。 当从01到31指定时,年份被解释为2000s(21世纪),32 t0 99被认为是1900年代(20世纪)。 SimpleDateFormat fm =new SimpleDateFormat(“dd-MM-yy”); String datestr=”21-11-31″; try { Date date= fm.parse(datestr); System.out.println(date); } catch (ParseException e) { } 谁能帮我? 我怎么能说明我只是整整地在21世纪工作。 我并没有完全试图寻找操纵字符串或根据条件移动日期的技巧。

Java 7日期/时间API

我注意到Java7 API的快照已经在java.sun.com 上播放了一段时间,但我刚刚看了一眼它,专门针对承诺的JodaTime启发的Date / Time API。 唉,我在发表的文档中没有提到它。 这是因为它还没有完成,而且这个发布的API是一个早期的,不完整的快照,还是因为这个想法已被悄然丢弃了?

将4位军事时间转换为标准的12小时时间格式

我想做什么: 我正在尝试将4位数的军事时间转换为标准的12小时时间格式,使用冒号和添加的PM或AM而不使用在我的代码之前导入任何内容(我正在制作一个除了java 101技术)。 我的情况: 我有milTime ,我每次运行时都会手动改变它(如声明的最高位,目前为1100),直到我将其转换为方法并提交分配,其中将采用milTime,并将返回milTimeString用于打印主程序。 我目前正在使用BlueJ作为IDE,(我不确定这是否是最好用的?) 输入输出示例: 如果给了0056,我将不得不在早上12:56返回。 如果给出1125,我将不得不在上午11:25返回。 如果给出2359,我将不得不在晚上11:59返回。 我需要帮助的问题 当我执行时,无论是输入11:24还是23:24,我的am / pm布尔值都会在某处失败,它总是输出pm。 可能很明显我工作太难以产生输出,但我不知道一种更简单的方法(除了导入一些东西为我做,我不想这样做)。 我谦卑地接受任何批评我臃肿的当前代码的批评,以及我冗长的请求中的任何更正。 我四处寻找替代答案,一切都涉及我之外的import或知识。 感谢您的时间到目前为止,并提前感谢大家。 public class timeTest { public static void main(String []args) { /*Declare my variables*/ int milTime = 2400; String timeString = “”; boolean pm; /*determine AM or PM and convert over 1200 into a clock’s digits */ […]

Joda时间被包含在Java 7中?

可能重复: Java 7日期/时间API 我已经读过有关Joda Time预计将被包含在Java 7中的传闻,但我无法找到这些信息的权威来源。 将Joda Time包含在未来的JDK中吗? 请引用你的消息来源。

日期为UTC格式Java

我有一个像这样的字符串2013-10-22T01:37:56 。 我需要将此字符串更改为UTC日期格式,如MM/dd/yyyy KK:mm:ss a 。 我尝试了一些代码,但它没有返回UTC日期时间。 我的代码是 String[] time = itsAlarmDttm.split(“T”); String aFormatDate = time[0]+ ” “+time[1]; String aRevisedDate = null; try { final SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); final Date dateObj = sdf.parse(aFormatDate); aRevisedDate = new SimpleDateFormat(“MM/dd/yyyy KK:mm:ss a”).format(dateObj); System.out.println(aRevisedDate); } catch (ParseException e) { itsLogger.error(“Error occured in Parsing the Data Time […]

为什么在1971年11月1日之前将一小时添加到java.util.Date的日期?

以下代码似乎演示了java.util.Date中的一个错误,如果本地时钟设置为GMT且DST调整开启且时间早于1971年11月1日,则会添加一小时。我的第一个假设始终是我的弄错了。 任何人都可以看到什么是错的(或者这真的是一个Java错误)? 1971年11月1日有什么重要意义? import java.text.SimpleDateFormat; import java.util.Locale; import java.util.TimeZone; class JavaUtilDateBug { private static void demo() throws Exception { // UK developers usually have the clock on their development machines set // to “Europe/London” (ie GMT with daylight saving). Set it explicitly // here so readers in other countries can see the problem too. TimeZone.setDefault(TimeZone.getTimeZone(“Europe/London”)); […]

查看当前时间是否在当前Java的特定时间范围内

我确信这在1000个不同的地方完成了1000次。 问题是我想知道是否有更好的/标准/更快的方法来检查当前“时间”是否在以hh:mm:ss格式给出的两个时间值之间。 例如,我的大型业务逻辑不应该在18:00:00 and 18:30:00之间运行。 所以这就是我的想法: public static boolean isCurrentTimeBetween(String starthhmmss, String endhhmmss) throws ParseException{ DateFormat hhmmssFormat = new SimpleDateFormat(“yyyyMMddhh:mm:ss”); Date now = new Date(); String yyyMMdd = hhmmssFormat.format(now).substring(0, 8); return(hhmmssFormat.parse(yyyMMdd+starthhmmss).before(now) && hhmmssFormat.parse(yyyMMdd+endhhmmss).after(now)); } 示例测试用例: String doNotRunBetween=”18:00:00,18:30:00″;//read from props file String[] hhmmss = downTime.split(“,”); if(isCurrentTimeBetween(hhmmss[0], hhmmss[1])){ System.out.println(“NOT OK TO RUN”); }else{ System.out.println(“OK TO RUN”); } […]

从XMLGregorianCalendar转换为Calendar时的日期更改

在测试在系统之间映射日期时间类型的Web服务时,我注意到在公历开始时间之前发送任何日期会导致在转换为最终类型时失去准确性,最终结果总是在范围内略微提前几天。 我把问题缩小到了确切的界限,但我仍然无法弄清楚为什么它会像这样投射,从文件中说明朱利安日历用于公历开始之前的日期时间:1582年10月15日。 问题行是从XMLGregorianCalendar为GregorianCalendar ,第78行: calendarDate = argCal.toGregorianCalendar(); 当从第86行的calendarDate获取时间时: cal.setTime(calendarDate.getTime()); 正如您在下面的程序输出中所看到的那样,时间比1月3日而不是1月1日提前2天。 这是我为展示铸造过程的端到端示例程序: import java.sql.Date; import java.util.Calendar; import java.util.GregorianCalendar; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; public class TestDateConversions { public static void main(String[] args) { TestDateConversions testDates = new TestDateConversions(); try { XMLGregorianCalendar testDate1 = DatatypeFactory.newInstance().newXMLGregorianCalendar(); testDate1.setYear(0001); testDate1.setMonth(01); testDate1.setDay(01); System.out.println(“Start date: “+testDate1.toString() +”\n**********************”); testDates.setXMLGregorianCalendar(testDate1); System.out.println(“\nNull given \n”+ […]

如何将时间戳转换为Date或DateTime对象?

我正在使用ResultSet.getTimestamp()从数据库中检索时间戳对象,但我想要一种简单的方法来获取MM/DD/YYYY格式的日期和格式为HH:MM xx 。 我正在修修补补,看起来我可以通过在Java中使用Date和/或DateTime对象来做到这一点。 这是最好的方法,还是我甚至需要转换时间戳才能实现这一目标? 任何建议都会有所帮助。 …. while(resultSet.next()) { Timestamp dtStart = resultSet.getTimestamp(“dtStart”); Timestamp dtEnd = resultSet.getTimestamp(“dtEnd”); // I would like to then have the date and time // converted into the formats mentioned… …. } ….