草庐IT

localtime_s

全部标签

c++ - localtime 不是线程安全的,但是可以只调用一个线程吗?

正在将另一个用户代码集成到我的代码中。他们有调用非线程安全的本地时间函数的库。我注意到了一些奇怪的问题。如果他们的代码仅限于一个线程,localtime仍然会导致问题吗?请注意,在我的代码的其他线程中,我调用了localtime_r(线程安全版本)。谢谢。 最佳答案 原因localtime不是线程安全的是它将结果(structtm*)存储在静态变量中。所以只要你只从一个线程调用这个函数,它就不会引起问题。换句话说,localtime看起来像这样:structtm*localtime(time_t*timer){staticstruc

c++ - localtime 不是线程安全的,但是可以只调用一个线程吗?

正在将另一个用户代码集成到我的代码中。他们有调用非线程安全的本地时间函数的库。我注意到了一些奇怪的问题。如果他们的代码仅限于一个线程,localtime仍然会导致问题吗?请注意,在我的代码的其他线程中,我调用了localtime_r(线程安全版本)。谢谢。 最佳答案 原因localtime不是线程安全的是它将结果(structtm*)存储在静态变量中。所以只要你只从一个线程调用这个函数,它就不会引起问题。换句话说,localtime看起来像这样:structtm*localtime(time_t*timer){staticstruc

java - 将 Joda LocalTime 转换为 java.sql.Date

要进行JDBC查询,我需要将日期传递给它。日期保存在DatefieldPostgreSql数据库的类型,表示具体的一天,没有任何时间。因为我只需要日期,所以我决定使用只表示日期而不表示时间的特定对象,即LocalDatefromJoda-Timepackage.我认为这很重要,因为如果我使用DateTime对象,它会携带多余的时间数据,并且可能会在夏令时结束时将时钟向后拨一小时导致错误(尽管这种情况前所未有,但并非如此不可能)。但是当我开始尝试将LocalDate对象与preparedStatement.setDate方法的可接受参数平方时,我没有找到合适的方法。setDate接受ja

java - 将 Joda LocalTime 转换为 java.sql.Date

要进行JDBC查询,我需要将日期传递给它。日期保存在DatefieldPostgreSql数据库的类型,表示具体的一天,没有任何时间。因为我只需要日期,所以我决定使用只表示日期而不表示时间的特定对象,即LocalDatefromJoda-Timepackage.我认为这很重要,因为如果我使用DateTime对象,它会携带多余的时间数据,并且可能会在夏令时结束时将时钟向后拨一小时导致错误(尽管这种情况前所未有,但并非如此不可能)。但是当我开始尝试将LocalDate对象与preparedStatement.setDate方法的可接受参数平方时,我没有找到合适的方法。setDate接受ja

c++ - MinGW 上的 localtime_r 支持

我正在开发一个Win32多线程C++项目,我想使用localtime_*中的一个。localtime()的线程安全替代品.不幸的是,我必须使用MinGW编译器,并且localtime_s不能在Microsoft之外使用。问题是localtime_r都不是正在工作:相关的代码片段是#include...stringgetCurrentTime(){time_tt;time(&t);structtmtimeinfo;//localtime_s(&timeinfo,&t);localtime_r(&t,&timeinfo);charbuf[128];strftime(buf,128,"%d-

java - JodaTime - 检查 LocalTime 是否在现在之后和现在在另一个 LocalTime 之前

我正在尝试检查当前时间是否在开始LocalTime之后和另一个结束LocalTime之前,即开始时间加11小时。如果开始时间是11:00(结束时间将是22:00),这会很好地工作。但是,当我尝试比较16:00的开始时间和03:00的结束时间时,currentTime.isBefore(endTime)永远不会被记录,但它应该被记录。LocalTimecurrentTime=LocalTime.now();//21:14LocalTimestartTime=newLocalTime(16,00,0,0);LocalTimeendTime=startTime.plusHours(11);/

java - 为什么Joda Time中LocalTime的getLocalMillis()是 protected 方法?

我想将joda时间LocalTime转换为毫秒或毫秒。我看到getLocalMillis是一种protected方法。看起来没有办法获取LocalTime的毫秒值。那么,我是否必须以毫秒为单位获取每个字段的值,然后将它们相加以获得总毫秒值?为什么JodaTime没有获取LocalMillis的公共(public)方法? 最佳答案 LocalTime不代表绝对的即时时间,而是描述任意时区的任何一天的时间。通过LocalTime#toDateTimeToday()将您的LocalTime渲染为DateTime或LocalTime#toD

java - JTable 为 LocalTime 类型定义一个编辑器

在遵循文档之后,我正在使用Java8:HowtoUseTables-UsinganEditortoValidateUser-EnteredText我想在编辑JTable中的列时设置专门的格式化程序.此列包含java.time.LocalTime实例。JTabletable;...table.setDefaultEditor(LocalTime.class,newLocalTimeEditor());其中LocalTimeEditor定义为(暂定):publicclassLocalTimeEditorextendsDefaultCellEditor{JFormattedTextField

java - 如何从 java 8 中的 LocalTime 中删除毫秒

使用java.time框架,我想以hh:mm:ss格式打印时间,但是LocalTime.now()以hh:mm:ss,nnn格式给出时间.我尝试使用DateTimeFormatter:DateTimeFormatterformatter=DateTimeFormatter.ISO_LOCAL_TIME;LocalTimetime=LocalTime.now();Stringf=formatter.format(time);System.out.println(f);结果:22:53:51.894如何从时间中删除毫秒数? 最佳答案 编

java - LocalTime 在 23.59 和 00 之间 :01

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭4年前。Improvethisquestion我想检查LocalTime是否是午夜。对于此用例,午夜定义为23:59和00:01之间的任何时间。这是2分钟的范围。privatefinalLocalTimeONE_MINUTE_BEFORE_MIDNIGHT=LocalTime.of(23,59,0);privatefinalLocalTimeO