Java 类org.joda.time.Seconds 实例源码
项目:mod-circulation-storage
文件:TextDateTimeMatcher.java
public static Matcher<String> withinSecondsAfter(Seconds seconds, DateTime after) {
return new TypeSafeMatcher<String>() {
@Override
public void describeTo(Description description) {
description.appendText(String.format(
"a date time within %s seconds after %s",
seconds.getSeconds(), after.toString()));
}
@Override
protected boolean matchesSafely(String textRepresentation) {
//response representation might vary from request representation
DateTime actual = DateTime.parse(textRepresentation);
return actual.isAfter(after) &&
Seconds.secondsBetween(after, actual).isLessThan(seconds);
}
};
}
项目:traccar-service
文件:SmokeyProtocolDecoder.java
private static void sendResponse(
Channel channel, SocketAddress remoteAddress, ChannelBuffer id, int index, int report) {
if (channel != null) {
ChannelBuffer response = ChannelBuffers.dynamicBuffer();
response.writeBytes("SM".getBytes(StandardCharsets.US_ASCII));
response.writeByte(3); // protocol version
response.writeByte(MSG_DATE_RECORD_ACK);
response.writeBytes(id);
response.writeInt(Seconds.secondsBetween(
new DateTime(2000, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(DateTimeZone.UTC)).getSeconds());
response.writeByte(index);
response.writeByte(report - 0x200);
short checksum = (short) 0xF5A0;
for (int i = 0; i < response.readableBytes(); i += 2) {
checksum ^= ChannelBuffers.swapShort(response.getShort(i));
}
response.writeShort(checksum);
channel.write(response, remoteAddress);
}
}
项目:bd-codes
文件:TianliActCode.java
public static void mergeFile() {
String rootPath = "D:/bdsoft/vko/tianli_act_code";
String destPath = rootPath + "/all_code.txt";
File rootDir = new File(rootPath);
if (rootDir.exists()) {
File[] fileArr = rootDir.listFiles();
DateTime start = new DateTime();
System.out.println("开始:" + start.toLocalDateTime());
for (File file : fileArr) {
readFrom(destPath, file);
}
DateTime end = new DateTime();
System.out.println("结束:" + end.toLocalDateTime());
String msg = String.format("文件合并完毕,耗时:%s分 %s秒", (Minutes.minutesBetween(start, end).getMinutes() % 60),
(Seconds.secondsBetween(start, end).getSeconds() % 3600));
System.out.println(msg);
}
}
项目:bigpicture
文件:HistogramDate.java
private int computeTimeModeAndDiff(DateTime dmin, DateTime dmax) {
int diffDay = Days.daysBetween(dmin, dmax).getDays();
int diffHou = Hours.hoursBetween(dmin, dmax).getHours();
int diffMin = Minutes.minutesBetween(dmin, dmax).getMinutes();
int diffSec = Seconds.secondsBetween(dmin, dmax).getSeconds();
int diff = diffMin;
guessTimeMode(diffDay, diffHou, diffMin, diffSec);
if (TimeMode.DAY.equals(timeMode)) {
diff = diffDay;
} else if (TimeMode.HOUR.equals(timeMode)) {
diff = diffHou;
} else if (TimeMode.MINUTE.equals(timeMode)) {
diff = diffMin;
} else if (TimeMode.SECOND.equals(timeMode)) {
diff = diffSec;
}
//consoleDiffs(diffDay, diffHou, diffMin, diffSec, diff);
return diff;
}
项目:welshare
文件:UserActivityController.java
@RequestMapping("/poll")
@ResponseBody
public boolean pollIfLimitReached(@RequestAttribute User loggedUser) {
if (loggedUser == null) {
return false;
}
ActivitySession session = map.get(loggedUser.getId());
// no atomicity required, hence getting & putting sequentially
if (session == null) {
session = new ActivitySession();
session.setStart(new DateTime());
map.put(loggedUser.getId(), session);
}
// warn the user only once per session
if (loggedUser.getProfile().isWarnOnMinutesPerDayLimit() && !session.isUserWarned()) {
// the time today = the time save in the DB + the time of the current session so far
int onlineSecondsToday = loggedUser.getOnlineSecondsToday() + Seconds.secondsBetween(session.getStart(), new DateTime()).getSeconds();
if (loggedUser.getProfile().getMinutesOnlinePerDay() * 60 < onlineSecondsToday) {
session.setUserWarned(true);
return true;
}
}
return false;
}
项目:welshare
文件:ActivitySessionService.java
@Override
@SqlTransactional
public void onExpiry(String userId, ActivitySession session) {
User user = getDao().getById(User.class, userId);
logger.debug("Expiring activity session of user: " + user);
session.setUser(user);
session.setEnd(new DateTime());
session.setSeconds(Seconds.secondsBetween(session.getStart(), session.getEnd()).getSeconds());
save(session);
if (user.getProfile().isWarnOnMinutesPerDayLimit()) {
int secondsToday = user.getOnlineSecondsToday();
if (shouldResetOnlineSecondsToday(user)) {
secondsToday = 0;
}
secondsToday += session.getSeconds();
user.setOnlineSecondsToday(secondsToday);
}
}
项目:twittererer
文件:TimelineConverter.java
private static String dateToAge(String createdAt, DateTime now) {
if (createdAt == null) {
return "";
}
DateTimeFormatter dtf = DateTimeFormat.forPattern(DATE_TIME_FORMAT);
try {
DateTime created = dtf.parseDateTime(createdAt);
if (Seconds.secondsBetween(created, now).getSeconds() < 60) {
return Seconds.secondsBetween(created, now).getSeconds() + "s";
} else if (Minutes.minutesBetween(created, now).getMinutes() < 60) {
return Minutes.minutesBetween(created, now).getMinutes() + "m";
} else if (Hours.hoursBetween(created, now).getHours() < 24) {
return Hours.hoursBetween(created, now).getHours() + "h";
} else {
return Days.daysBetween(created, now).getDays() + "d";
}
} catch (IllegalArgumentException e) {
return "";
}
}
项目:jfixture
文件:BaseSingleFieldPeriodRelay.java
@Override
public Object create(Object request, SpecimenContext context) {
if (!(request instanceof SpecimenType)) {
return new NoSpecimen();
}
SpecimenType type = (SpecimenType) request;
if (!BaseSingleFieldPeriod.class.isAssignableFrom(type.getRawType())) {
return new NoSpecimen();
}
Duration duration = (Duration) context.resolve(Duration.class);
if (type.equals(Seconds.class)) return Seconds.seconds(Math.max(1, (int) duration.getStandardSeconds()));
if (type.equals(Minutes.class)) return Minutes.minutes(Math.max(1, (int) duration.getStandardMinutes()));
if (type.equals(Hours.class)) return Hours.hours(Math.max(1, (int) duration.getStandardHours()));
if (type.equals(Days.class)) return Days.days(Math.max(1, (int) duration.getStandardDays()));
if (type.equals(Weeks.class)) return Weeks.weeks(Math.max(1, (int) duration.getStandardDays() / 7));
if (type.equals(Months.class)) return Months.months(Math.max(1, (int) duration.getStandardDays() / 30));
if (type.equals(Years.class)) return Years.years(Math.max(1, (int) duration.getStandardDays() / 365));
return new NoSpecimen();
}
项目:guja
文件:OAuth2AuthorizationResource.java
/**
* Validate an access_token.
* The Oauth2 specification does not specify how this should be done. Do similar to what Google does
*
* @param access_token access token to validate. Be careful about using url safe tokens or use url encoding.
* @return http 200 if success and some basic info about the access_token
*/
@GET
@Path("tokeninfo")
public Response validate(@QueryParam("access_token") String access_token) {
checkNotNull(access_token);
DConnection connection = connectionDao.findByAccessToken(access_token);
LOGGER.debug("Connection {}", connection);
if (null == connection || hasAccessTokenExpired(connection)) {
throw new BadRequestRestException("Invalid access_token");
}
return Response.ok(ImmutableMap.builder()
.put("user_id", connection.getUserId())
.put("expires_in", Seconds.secondsBetween(DateTime.now(), new DateTime(connection.getExpireTime())).getSeconds())
.build())
.build();
}
项目:java-util-examples
文件:CalculateDateTimeDifference.java
@Test
public void difference_between_two_dates_joda () {
DateTime sinceGraduation = new DateTime(1984, 6, 4, 0, 0, GregorianChronology.getInstance());
DateTime currentDate = new DateTime(); //current date
Days diffInDays = Days.daysBetween(sinceGraduation, currentDate);
Hours diffInHours = Hours.hoursBetween(sinceGraduation, currentDate);
Minutes diffInMinutes = Minutes.minutesBetween(sinceGraduation, currentDate);
Seconds seconds = Seconds.secondsBetween(sinceGraduation, currentDate);
logger.info(diffInDays.getDays());
logger.info(diffInHours.getHours());
logger.info(diffInMinutes.getMinutes());
logger.info(seconds.getSeconds());
assertTrue(diffInDays.getDays() >= 10697);
assertTrue(diffInHours.getHours() >= 256747);
assertTrue(diffInMinutes.getMinutes() >= 15404876);
assertTrue(seconds.getSeconds() >= 924292577);
}
项目:graylog-plugin-aws
文件:CloudWatchFlowLogCodec.java
private Map<String, Object> buildFields(FlowLogMessage msg) {
return new HashMap<String, Object>() {{
put("account_id", msg.getAccountId());
put("interface_id", msg.getInterfaceId());
put("src_addr", msg.getSourceAddress());
put("dst_addr", msg.getDestinationAddress());
put("src_port", msg.getSourcePort());
put("dst_port", msg.getDestinationPort());
put("protocol_number", msg.getProtocolNumber());
put("protocol", protocolNumbers.lookup(msg.getProtocolNumber()));
put("packets", msg.getPackets());
put("bytes", msg.getBytes());
put("capture_window_duration_seconds", Seconds.secondsBetween(msg.getCaptureWindowStart(), msg.getCaptureWindowEnd()).getSeconds());
put("action", msg.getAction());
put("log_status", msg.getLogStatus());
}};
}
项目:PebbleNotifier
文件:MyNotificationListenerService.java
private boolean shouldIgnoreNotification(@NotNull final Notification notification) {
Notification lastNotification = mOrmManager.getLastNotification();
if (lastNotification == null) {
return false;
}
boolean result = false;
if (notification.getTitle().equals(lastNotification.getTitle())) {
if (notification.getText().equals(lastNotification.getText())) {
if (Seconds.secondsBetween(lastNotification.getCreated(), notification.getCreated()).getSeconds() < 60) {
result = true;
}
}
}
return result;
}
项目:jpmml-evaluator
文件:TypeUtil.java
/**
* @see DataType#DATE_TIME_SECONDS_SINCE_1960
* @see DataType#DATE_TIME_SECONDS_SINCE_1970
* @see DataType#DATE_TIME_SECONDS_SINCE_1980
*/
static
private SecondsSinceDate toSecondsSinceDate(Object value, LocalDate epoch){
if(value instanceof SecondsSinceDate){
SecondsSinceDate period = (SecondsSinceDate)value;
if((period.getEpoch()).equals(epoch)){
return period;
}
Seconds difference = Seconds.secondsBetween(toMidnight(epoch), toMidnight(period.getEpoch())).plus(period.getSeconds());
return new SecondsSinceDate(epoch, difference);
}
throw new TypeCheckException(getSecondsDataType(epoch), value);
}
项目:rdbi
文件:RedisMapTest.java
@Test
public void sniffTest() {
final RDBI rdbi = new RDBI(new JedisPool("localhost"));
final Map<String, RedisCacheTest.TestContainer> rMap = new RedisMap<>(RedisCacheTest.keyGenerator,
RedisCacheTest.helper,
rdbi,
"mycache" + UUID.randomUUID().toString(),
cachePrefix,
Seconds.seconds(60).toStandardDuration());
final RedisCacheTest.TestContainer value1 = new RedisCacheTest.TestContainer(UUID.randomUUID());
final RedisCacheTest.TestContainer value2 = new RedisCacheTest.TestContainer(UUID.randomUUID());
rMap.put("value1", value1);
rMap.put("value2", value2);
assertEquals(rMap.get("value1"), value1);
assertEquals(rMap.get("value2"), value2);
}
项目:levelup-java-examples
文件:CalculateDateTimeDifference.java
@Test
public void difference_between_two_dates_joda () {
DateTime sinceGraduation = new DateTime(1984, 6, 4, 0, 0, GregorianChronology.getInstance());
DateTime currentDate = new DateTime(); //current date
Days diffInDays = Days.daysBetween(sinceGraduation, currentDate);
Hours diffInHours = Hours.hoursBetween(sinceGraduation, currentDate);
Minutes diffInMinutes = Minutes.minutesBetween(sinceGraduation, currentDate);
Seconds seconds = Seconds.secondsBetween(sinceGraduation, currentDate);
logger.info(diffInDays.getDays());
logger.info(diffInHours.getHours());
logger.info(diffInMinutes.getMinutes());
logger.info(seconds.getSeconds());
assertTrue(diffInDays.getDays() >= 10697);
assertTrue(diffInHours.getHours() >= 256747);
assertTrue(diffInMinutes.getMinutes() >= 15404876);
assertTrue(seconds.getSeconds() >= 924292577);
}
项目:swiftly
文件:DateTools.java
public void compare() {
DateTime dateTime1 = new DateTime(2014, 1, 1, 12, 00, 00);
DateTime dateTime2 = new DateTime(2014, 1, 1, 12, 00, 01);
// 时间之间的比较
boolean after = dateTime2.isAfter(dateTime1);
LOGGER.info("is after" + after);
// 两个时间之间相差的秒数
Seconds seconds = Seconds.secondsBetween(dateTime1, dateTime2);
LOGGER.info(seconds.getSeconds() + "");
LOGGER.info("1:" + dateTime1.toString(YYYY_MM_DD_HH_MM_SS));
LOGGER.info("2:" + dateTime2.toString(YYYY_MM_DD_HH_MM_SS));
// 两个时间之间xiang相差的天数
Days days = Days.daysBetween(dateTime1, dateTime2);
LOGGER.info("second:" + days.toStandardDuration().getStandardSeconds());
LOGGER.info(days.get(DurationFieldType.hours()) + "");
LOGGER.info(days.getFieldType().getName());
LOGGER.info(days.getPeriodType().getName());
LOGGER.info(days.toStandardSeconds().getSeconds() + "");
LOGGER.info(days.getDays() + "");
}
项目:incubator-sdap-mudrod
文件:Session.java
/**
* Compare current session with another session
*
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(Session o) {
fmt.parseDateTime(this.end);
fmt.parseDateTime(o.end);
// ascending order
return Seconds.secondsBetween(fmt.parseDateTime(o.end), fmt.parseDateTime(this.end)).getSeconds();
}
项目:obevo
文件:AseSqlExecutor.java
/**
* Adding this wait as the Sybase ASE logs can fill up quickly if you execute a lot of DDLs
* Hence, we put in a periodic check (currently going by every "maxLogCounter" updates executed)
* to see if the log level exceeds a "stopLogSpaceThreshold". If so, we wait till it gets back
* down to a "resumeLogSpaceThreshold"
*/
private void waitForLogSpace(Connection conn, JdbcHelper jdbc) {
this.curLogCounter.incrementAndGet();
// only trigger the check every "maxLogCounter" checks
if (this.curLogCounter.get() == maxLogCounter) {
boolean firstTime = true;
while (true) {
int percentFull = getPercentLogFullInDb(conn, jdbc);
int thresholdToCheck = firstTime ? stopLogSpaceThreshold : resumeLogSpaceThreshold;
firstTime = false;
if (percentFull < thresholdToCheck) {
break;
} else {
try {
Seconds seconds = Seconds.seconds(3);
LOG.info(String
.format("Pausing for %d seconds as the log level hit a high mark of %d; will resume when it gets back to %d",
seconds.getSeconds(), percentFull, resumeLogSpaceThreshold));
Thread.sleep(seconds.getSeconds() * 1000);
} catch (InterruptedException e) {
throw new DeployerRuntimeException(e);
}
}
}
this.curLogCounter.set(0); // reset the log counter after doing the check
} else if (this.curLogCounter.get() > maxLogCounter) {
// in this case, some concurrent execution caused the ID to exceed the maxLogCounter. In this case, just
// reset the counter to 0 (the thread that has the counter at the right value would execute this code
this.curLogCounter.set(0);
}
}
项目:mongo-trek
文件:MongoTrek.java
/**
* Migrate the Mongo database using the provided collection of commands. Will not apply versions already applied successfully.
*
* @return The trek state
* @throws MongoTrekFailureException If the migration fails for whatever reason.
*/
public MongoTrekState migrate() throws MongoTrekFailureException {
LOGGER.info("DATABASE MIGRATIONS");
MigrationCommands commands = commandsFactory().getCommands(migrationsFile);
MongoTrekState state = migrationsService().getState(commands);
if (!commands.hasMigrations()) {
LOGGER.info(" No migrations to apply.");
return state;
}
DateTime start = DateTime.now();
AtomicInteger successfulCount = new AtomicInteger(0);
try {
MongoTrekState.Pending pending = state.getPending();
if (!pending.hasPendingMigrations()) {
LOGGER.info(" No migrations to apply.");
return state;
}
logStatus("migrate", state.getCurrentVersion());
LOGGER.info(String.format(" Applying : [ %s ] -> [ %s ]", pending.getNextPendingVersion(), pending.getLastPendingVersion()));
LOGGER.info(" Migrations :");
pending.getMigrations().stream().forEach(m -> applyMigration(successfulCount, m));
// Get state after migrations have been applied.
return migrationsService().getState(commands);
} catch (Exception e) {
LOGGER.error("Error applying migration(s)", e);
throw new MongoTrekFailureException(e);
} finally {
DateTime finish = DateTime.now();
LOGGER.info(String.format(">>> [ %d ] migrations applied in [ %d seconds ] <<<", successfulCount.get(), Seconds.secondsBetween(start, finish).getSeconds()));
if (!this.providedDatabase) this.mongo.close();
}
}
项目:ThunderMusic
文件:OnlineTotalSearchTask.java
private int convertTime(String time) {
PeriodFormatter formatter = ISOPeriodFormat.standard();
Period p = formatter.parsePeriod(time);
Seconds s = p.toStandardSeconds();
return s.getSeconds();
}
项目:ThunderMusic
文件:YoutubeSearch.java
private int convertTime(String time) {
PeriodFormatter formatter = ISOPeriodFormat.standard();
Period p = formatter.parsePeriod(time);
Seconds s = p.toStandardSeconds();
return s.getSeconds();
}
项目:exam
文件:TimeController.java
@Restrict({@Group("STUDENT")})
public Result getExamRemainingTime(String hash) throws IOException {
User user = getLoggedUser();
if (user == null) {
return forbidden("sitnet_error_invalid_session");
}
ExamEnrolment enrolment = Ebean.find(ExamEnrolment.class)
.fetch("reservation")
.fetch("reservation.machine")
.fetch("reservation.machine.room")
.fetch("exam")
.fetch("externalExam")
.where()
.disjunction()
.eq("exam.hash", hash)
.eq("externalExam.hash", hash)
.endJunction()
.eq("user.id", user.getId())
.findUnique();
if (enrolment == null) {
return notFound();
}
final DateTime reservationStart = new DateTime(enrolment.getReservation().getStartAt());
final int durationMinutes = getDuration(enrolment);
DateTime now = AppUtil.adjustDST(DateTime.now(), enrolment.getReservation());
final Seconds timeLeft = Seconds.secondsBetween(now, reservationStart.plusMinutes(durationMinutes));
return ok(String.valueOf(timeLeft.getSeconds()));
}
项目:exam
文件:SystemInitializer.java
private int secondsUntilNextMondayRun() {
DateTime now = DateTime.now();
// Every Monday at 5AM UTC
int adjustedHours = 5;
if (!AppUtil.getDefaultTimeZone().isStandardOffset(now.getMillis())) {
// Have the run happen an hour earlier to take care of DST offset
adjustedHours -= 1;
}
DateTime nextRun = now.withHourOfDay(adjustedHours)
.withMinuteOfHour(0)
.withSecondOfMinute(0)
.withMillisOfSecond(0)
.plusWeeks(now.getDayOfWeek() == DateTimeConstants.MONDAY ? 0 : 1)
.withDayOfWeek(DateTimeConstants.MONDAY);
if (!nextRun.isAfter(now)) {
nextRun = nextRun.plusWeeks(1); // now is a Monday after scheduled run time -> postpone
}
// Case for: now there's no DST but by next run there will be.
if (adjustedHours == 5 && !AppUtil.getDefaultTimeZone().isStandardOffset(nextRun.getMillis())) {
nextRun = nextRun.minusHours(1);
}
// Case for: now there's DST but by next run there won't be
else if (adjustedHours != 5 && AppUtil.getDefaultTimeZone().isStandardOffset(nextRun.getMillis())) {
nextRun = nextRun.plusHours(1);
}
Logger.info("Scheduled next weekly report to be run at {}", nextRun.toString());
// Increase delay with one second so that this won't fire off before intended time. This may happen because of
// millisecond-level rounding issues and possibly cause resending of messages.
return Seconds.secondsBetween(now, nextRun).getSeconds() + 1;
}
项目:oma-riista-web
文件:CustomSpringSessionRememberMeServices.java
private Optional<Seconds> getTimeToLive(final Authentication successfulAuthentication) {
final UserInfo userInfo = UserInfo.extractFrom(successfulAuthentication);
final Set<String> roles = AuthorityUtils.authorityListToSet(userInfo.getAuthorities());
if (roles.contains(SystemUser.Role.ROLE_REST.name())) {
return Optional.empty();
} else if (roles.contains(SystemUser.Role.ROLE_ADMIN.name()) ||
roles.contains(SystemUser.Role.ROLE_MODERATOR.name())) {
return Optional.of(securityConfigurationProperties.getRemeberMeTimeToLiveForModerator());
} else if (roles.contains(SystemUser.Role.ROLE_USER.name())) {
return Optional.of(securityConfigurationProperties.getRememberMeTimeToLive());
}
return Optional.empty();
}
项目:mudrod
文件:Session.java
/**
* Compare current session with another session
*
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(Session o) {
fmt.parseDateTime(this.end);
fmt.parseDateTime(o.end);
// ascending order
return Seconds.secondsBetween(fmt.parseDateTime(o.end), fmt.parseDateTime(this.end)).getSeconds();
}
项目:openlmis-template-service
文件:JaVersIntegrationTest.java
@Test
public void shouldAlwaysCommitWithUtcTimeZone() throws IOException {
//given
Widget widget = new Widget();
widget.setId(UUID.randomUUID());
widget.setName("name_1");
//when
DateTimeZone.setDefault(DateTimeZone.forID("UTC"));
javers.commit(COMMIT_AUTHOR, widget);
DateTimeZone.setDefault(DateTimeZone.forID("Africa/Johannesburg"));
widget.setName("name_2");
javers.commit(COMMIT_AUTHOR, widget);
//then
List<CdoSnapshot> snapshots = javers.findSnapshots(
QueryBuilder.byClass(Widget.class).build());
assertEquals(2, snapshots.size());
LocalDateTime commitTime1 = snapshots.get(0).getCommitMetadata().getCommitDate();
LocalDateTime commitTime2 = snapshots.get(1).getCommitMetadata().getCommitDate();
int delta = Math.abs(Seconds.secondsBetween(commitTime1, commitTime2).getSeconds());
assertTrue(delta < 1);
}
项目:azkaban
文件:Schedule.java
public static ReadablePeriod parsePeriodString(String periodStr) {
ReadablePeriod period;
char periodUnit = periodStr.charAt(periodStr.length() - 1);
if (periodUnit == 'n') {
return null;
}
int periodInt =
Integer.parseInt(periodStr.substring(0, periodStr.length() - 1));
switch (periodUnit) {
case 'M':
period = Months.months(periodInt);
break;
case 'w':
period = Weeks.weeks(periodInt);
break;
case 'd':
period = Days.days(periodInt);
break;
case 'h':
period = Hours.hours(periodInt);
break;
case 'm':
period = Minutes.minutes(periodInt);
break;
case 's':
period = Seconds.seconds(periodInt);
break;
default:
throw new IllegalArgumentException("Invalid schedule period unit '"
+ periodUnit);
}
return period;
}
项目:azkaban
文件:Utils.java
public static ReadablePeriod parsePeriodString(String periodStr) {
ReadablePeriod period;
char periodUnit = periodStr.charAt(periodStr.length() - 1);
if (periodStr.equals("null") || periodUnit == 'n') {
return null;
}
int periodInt =
Integer.parseInt(periodStr.substring(0, periodStr.length() - 1));
switch (periodUnit) {
case 'y':
period = Years.years(periodInt);
break;
case 'M':
period = Months.months(periodInt);
break;
case 'w':
period = Weeks.weeks(periodInt);
break;
case 'd':
period = Days.days(periodInt);
break;
case 'h':
period = Hours.hours(periodInt);
break;
case 'm':
period = Minutes.minutes(periodInt);
break;
case 's':
period = Seconds.seconds(periodInt);
break;
default:
throw new IllegalArgumentException("Invalid schedule period unit '"
+ periodUnit);
}
return period;
}
项目:azkaban
文件:Schedule.java
public static ReadablePeriod parsePeriodString(String periodStr) {
ReadablePeriod period;
char periodUnit = periodStr.charAt(periodStr.length() - 1);
if (periodUnit == 'n') {
return null;
}
int periodInt =
Integer.parseInt(periodStr.substring(0, periodStr.length() - 1));
switch (periodUnit) {
case 'M':
period = Months.months(periodInt);
break;
case 'w':
period = Weeks.weeks(periodInt);
break;
case 'd':
period = Days.days(periodInt);
break;
case 'h':
period = Hours.hours(periodInt);
break;
case 'm':
period = Minutes.minutes(periodInt);
break;
case 's':
period = Seconds.seconds(periodInt);
break;
default:
throw new IllegalArgumentException("Invalid schedule period unit '"
+ periodUnit);
}
return period;
}
项目:DietDiaryApp
文件:DailyReminderServiceHelper.java
private static int getSecondsUntilTime(@NonNull final LocalTime time) {
LocalDateTime alarmClock = LocalDate.now()
.toLocalDateTime(time);
if (alarmClock.isBefore(LocalDateTime.now())) {
alarmClock = alarmClock.plusDays(1);
}
return Seconds.secondsBetween(LocalDateTime.now(), alarmClock).getSeconds();
}
项目:DietDiaryApp
文件:DriveBackupServiceHelper.java
private static int getSecondsUntilTime(@NonNull final Frequency frequency, final LocalDate lastUpdate) {
final LocalTime time = LocalTime.parse(DEFAULT_TIME, DatabaseHelper.DB_TIME_FORMATTER);
LocalDateTime alarmClock;
if (null == lastUpdate) { // Never run before
alarmClock = LocalDate.now().toLocalDateTime(time);
} else { // Run before
alarmClock = lastUpdate.toLocalDateTime(time);
switch (frequency) {
case DAILY:
alarmClock = alarmClock.plusDays(1);
break;
case WEEKLY:
alarmClock = alarmClock.plusWeeks(1);
break;
case MONTHLY:
alarmClock = alarmClock.plusMonths(1);
break;
default:
throw new IllegalStateException("Unknown value " + frequency);
}
}
// May be pointing some time before now.
while (alarmClock.isBefore(LocalDateTime.now())) {
alarmClock = alarmClock.plusDays(1);
}
return Seconds.secondsBetween(LocalDateTime.now(), alarmClock).getSeconds();
}
项目:mongo-trek
文件:MongoTrek.java
/**
* Migrate the Mongo database using the provided collection of commands. Will not apply versions already applied successfully.
*
* @return The trek state
* @throws MongoTrekFailureException If the migration fails for whatever reason.
*/
public MongoTrekState migrate() throws MongoTrekFailureException {
LOGGER.info("DATABASE MIGRATIONS");
MigrationCommands commands = commandsFactory().getCommands(migrationsFile);
MongoTrekState state = migrationsService().getState(commands);
if (!commands.hasMigrations()) {
LOGGER.info(" No migrations to apply.");
return state;
}
DateTime start = DateTime.now();
AtomicInteger successfulCount = new AtomicInteger(0);
try {
MongoTrekState.Pending pending = state.getPending();
if (!pending.hasPendingMigrations()) {
LOGGER.info(" No migrations to apply.");
return state;
}
logStatus("migrate", state.getCurrentVersion());
LOGGER.info(String.format(" Applying : [ %s ] -> [ %s ]", pending.getNextPendingVersion(), pending.getLastPendingVersion()));
LOGGER.info(" Migrations :");
pending.getMigrations().stream().forEach(m -> applyMigration(successfulCount, m));
// Get state after migrations have been applied.
return migrationsService().getState(commands);
} catch (Exception e) {
LOGGER.error("Error applying migration(s)", e);
throw new MongoTrekFailureException(e);
} finally {
DateTime finish = DateTime.now();
LOGGER.info(String.format(">>> [ %d ] migrations applied in [ %d seconds ] <<<", successfulCount.get(), Seconds.secondsBetween(start, finish).getSeconds()));
if (!this.providedDatabase) this.mongo.close();
}
}
项目:NaturalDateFormat
文件:RelativeDateFormat.java
private void formatSeconds(DateTime now, DateTime then, StringBuilder text) {
int secondsBetween = Seconds.secondsBetween(now.toLocalTime(), then.toLocalTime()).getSeconds();
if (secondsBetween == 0) {
text.append(context.getString(R.string.now));
} else if (secondsBetween > 0) { // in N seconds
text.append(context.getResources().getQuantityString(R.plurals.carbon_inSeconds, secondsBetween, secondsBetween));
} else { // N seconds ago
text.append(context.getResources().getQuantityString(R.plurals.carbon_secondsAgo, -secondsBetween, -secondsBetween));
}
}
项目:dhis2-core
文件:DefaultFileResourceService.java
/**
* TODO Temporary fix. Remove at some point.
*
* Ensures correctness of the storageStatus of this FileResource.
*
* If the status has been 'PENDING' for more than 1 second we check to see if the content may actually have been stored.
* If this is the case the status is corrected to STORED.
*
* This method is a TEMPORARY fix for the for now unsolved issue with a race occurring between the Hibernate object cache
* and the upload callback attempting to modify the FileResource object upon completion.
*
* Resolving that issue (likely by breaking the StorageStatus into a separate table) should make this method redundant.
*/
private FileResource ensureStorageStatus( FileResource fileResource )
{
if ( fileResource != null && fileResource.getStorageStatus() == FileResourceStorageStatus.PENDING )
{
Duration pendingDuration = new Duration( new DateTime( fileResource.getLastUpdated() ), DateTime.now() );
if ( pendingDuration.isLongerThan( Seconds.seconds( 1 ).toStandardDuration() ) )
{
// Upload has been finished for 5+ seconds and is still PENDING.
// Check if content has actually been stored and correct to STORED if this is the case.
boolean contentIsStored = fileResourceContentStore.fileResourceContentExists( fileResource.getStorageKey() );
if ( contentIsStored )
{
// We fix
fileResource.setStorageStatus( FileResourceStorageStatus.STORED );
fileResourceStore.update( fileResource );
log.warn( "Corrected issue: FileResource '" + fileResource.getUid() +
"' had storageStatus PENDING but content was actually stored." );
}
}
}
return fileResource;
}
项目:RememBirthday
文件:CalendarEvent.java
/**
* Set the year to the date of event
*/
public void setYear(int year) {
int secondsBetweenStartAndStop = Seconds.secondsBetween(
new DateTime(dateStart),
new DateTime(dateStop))
.getSeconds();
dateStart = new DateTime(dateStart).withYear(year).toDate();
dateStop = new DateTime(dateStart).plusSeconds(secondsBetweenStartAndStop).toDate();
}
项目:FriendCaster
文件:FeedRecyclerAdapter.java
private String getFormattedDuration(int seconds) {
Period period = new Period(Seconds.seconds(seconds));
PeriodFormatter periodFormatter = new PeriodFormatterBuilder()
.printZeroAlways()
.minimumPrintedDigits(2)
.appendHours()
.appendSeparator(":")
.appendMinutes()
.appendSeparator(":")
.appendSeconds()
.toFormatter();
return periodFormatter.print(period.normalizedStandard());
}
项目:ggp-tournament
文件:TimeUtils.java
public static long getSecondsToWaitUntilStartTime(Optional<DateTime> startTime) {
if (!startTime.isPresent()) {
return 0L;
}
DateTime now = DateTime.now();
long seconds = Seconds.secondsBetween(now, startTime.get()).getSeconds();
if (seconds < 0L) {
return 0L;
}
return seconds;
}
项目:onetwo
文件:JodatimeUtilsTest.java
@Test
public void testBetween(){
Date start = DateUtils.parse("2016-12-06 17:35:30");
Date end = DateUtils.parse("2016-12-06 17:35:33");
Period period = JodatimeUtils.between(start, end);
assertThat(period.getSeconds(), equalTo(Seconds.THREE.getSeconds()));
assertThat(Seconds.secondsBetween(new LocalDateTime(start), new LocalDateTime(end)), equalTo(Seconds.THREE));
}
项目:minewrap
文件:TimeUtil.java
public static Seconds getSecondsUntilNextInterval(int intervalInHours) {
DateTime currentDateTime = DateTime.now();
int hoursUntilNextInterval = (23 - currentDateTime.getHourOfDay()) % intervalInHours;
int hour = currentDateTime.getHourOfDay() + hoursUntilNextInterval;
DateTime scheduledTime = new DateTime(currentDateTime.getYear(), currentDateTime.getMonthOfYear(), currentDateTime.getDayOfMonth(), hour, 55, currentDateTime.getZone());
return Seconds.secondsBetween(currentDateTime, scheduledTime);
}
项目:minewrap
文件:TimeUtilTest.java
@Test
public void longIntervals() {
for (int index = 0; index < LONG_INTERVALS_EXPECTED_VALUES.length; index++) {
DateTimeUtils.setCurrentMillisFixed(new DateTime(2015, 8, 1, LONG_INTERVALS_EXPECTED_VALUES[index][0], 0).getMillis());
Seconds result = TimeUtil.getSecondsUntilNextInterval(LONG_INTERVAL);
assertThat(result.getSeconds(), Matchers.is(LONG_INTERVALS_EXPECTED_VALUES[index][1]));
}
}