Class: OpenHAB::CoreExt::Java::ZonedDateTime
- Inherits:
 - 
      Object
      
        
- Object
 - OpenHAB::CoreExt::Java::ZonedDateTime
 
 
- Defined in:
 - lib/openhab/core_ext/java/zoned_date_time.rb
 
Overview
Extensions to java.time.ZonedDateTime
Class Attribute Summary collapse
- .now ⇒ ZonedDateTime readonly
 
Ephemeris Methods collapse
openHAB's built-in holiday definitions are based on bank holidays, so may give some unexpected results. For example, 2022-12-25 is not Christmas in England because it lands on a Sunday that year, so Christmas is considered to be 2022-12-26. See the source for exact definitions. You can always provide your own holiday definitions with holiday_file or holiday_file!.
Forwards ephemeris helper methods to #to_zoned_date_time provided by
the mixed-in class.
- 
  
    
      #days_until(holiday, holiday_file = nil)  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    
Calculate the number of days until a specific holiday.
 - 
  
    
      #holiday(holiday_file = nil)  ⇒ Symbol? 
    
    
  
  
  
  
  
  
  
  
  
    
Name of the holiday for this date.
 - 
  
    
      #holiday?(holiday_file = nil)  ⇒ true, false 
    
    
  
  
  
  
  
  
  
  
  
    
Determines if this date is on a holiday.
 - 
  
    
      #in_dayset?(set)  ⇒ true, false 
    
    
  
  
  
  
  
  
  
  
  
    
Determines if this time is during a specific dayset.
 - 
  
    
      #next_holiday(holiday_file = nil)  ⇒ Symbol 
    
    
  
  
  
  
  
  
  
  
  
    
Name of the closest holiday on or after this date.
 - 
  
    
      #weekend?  ⇒ true, false 
    
    
  
  
  
  
  
  
  
  
  
    
Determines if this time is during a weekend.
 
Class Method Summary collapse
- 
  
    
      .parse(text, formatter = nil)  ⇒ ZonedDateTime 
    
    
  
  
  
  
  
  
  
  
  
    
Parses a string into a ZonedDateTime object.
 
Instance Method Summary collapse
- #+(other) ⇒ ZonedDateTime
 - #-(other) ⇒ Duration, ZonedDateTime
 - #<=>(other) ⇒ Integer?
 - 
  
    
      #coerce(other)  ⇒ Array? 
    
    
  
  
  
  
  
  
  
  
  
    
Converts
otherto ZonedDateTime, if possible. - #to_date ⇒ Date
 - 
  
    
      #to_f  ⇒ Float 
    
    
  
  
  
  
  
  
  
  
  
    
The number of seconds since the Unix epoch.
 - 
  
    
      #to_i  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    
The number of seconds since the Unix epoch.
 - #to_local_date(_context = nil) ⇒ LocalDate
 - #to_local_time(_context = nil) ⇒ LocalTime
 - #to_month ⇒ Month
 - #to_month_day ⇒ MonthDay
 - #to_time ⇒ Time
 - #to_zoned_date_time(context = nil) ⇒ self
 
Methods included from Between
Class Attribute Details
Class Method Details
.parse(text, formatter = nil) ⇒ ZonedDateTime
Parses a string into a ZonedDateTime object.
| 
       | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 21
     | 
  
Instance Method Details
#+(other) ⇒ ZonedDateTime
      56 57 58 59 60  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 56 def +(other) return plus(other.seconds) if other.is_a?(Numeric) plus(other) end  | 
  
#-(other) ⇒ Duration, ZonedDateTime
      43 44 45 46 47 48 49 50 51  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 43 def -(other) if other.respond_to?(:to_zoned_date_time) java.time.Duration.between(other.to_zoned_date_time, self) elsif other.is_a?(Numeric) minus(other.seconds) else minus(other) end end  | 
  
#<=>(other) ⇒ Integer?
      189 190 191 192 193 194 195 196 197  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 189 def <=>(other) # compare instants, otherwise it will differ by timezone, which we don't want # (use eql? if you care about that) if other.respond_to?(:to_zoned_date_time) to_instant.compare_to(other.to_zoned_date_time(self).to_instant) elsif other.respond_to?(:coerce) && (lhs, rhs = other.coerce(self)) lhs <=> rhs end end  | 
  
#coerce(other) ⇒ Array?
Converts other to OpenHAB::CoreExt::Java::ZonedDateTime, if possible
      205 206 207  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 205 def coerce(other) [other.to_zoned_date_time(self), self] if other.respond_to?(:to_zoned_date_time) end  | 
  
#days_until(holiday, holiday_file = nil) ⇒ Integer
Calculate the number of days until a specific holiday
      178 179 180 181 182 183 184  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 178 def days_until(holiday, holiday_file = nil) holiday = holiday.to_s.upcase r = ::Ephemeris.get_days_until(*[self, holiday, holiday_file || DSL.holiday_file].compact) raise ArgumentError, "#{holiday.inspect} isn't a recognized holiday" if r == -1 r end  | 
  
#holiday(holiday_file = nil) ⇒ Symbol?
Name of the holiday for this date.
      118 119 120  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 118 def holiday(holiday_file = nil) ::Ephemeris.get_bank_holiday_name(*[self, holiday_file || DSL.holiday_file].compact)&.downcase&.to_sym end  | 
  
#holiday?(holiday_file = nil) ⇒ true, false
Determines if this date is on a holiday.
      128 129 130  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 128 def holiday?(holiday_file = nil) ::Ephemeris.bank_holiday?(*[self, holiday_file || DSL.holiday_file].compact) end  | 
  
#in_dayset?(set) ⇒ true, false
Determines if this time is during a specific dayset
      163 164 165  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 163 def in_dayset?(set) ::Ephemeris.in_dayset?(set.to_s, self) end  | 
  
#next_holiday(holiday_file = nil) ⇒ Symbol
Name of the closest holiday on or after this date.
      138 139 140  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 138 def next_holiday(holiday_file = nil) ::Ephemeris.get_next_bank_holiday(*[self, holiday_file || DSL.holiday_file].compact).downcase.to_sym end  | 
  
#to_date ⇒ Date
      79 80 81  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 79 def to_date Date.new(year, month_value, day_of_month) end  | 
  
#to_f ⇒ Float
The number of seconds since the Unix epoch.
      74 75 76  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 74 def to_f to_instant.to_epoch_milli / 1000.0 end  | 
  
#to_i ⇒ Integer
The number of seconds since the Unix epoch.
      66 67 68  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 66 def to_i to_instant.epoch_second end  | 
  
#to_local_date(_context = nil) ⇒ LocalDate
      84 85 86  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 84 def to_local_date(_context = nil) toLocalDate end  | 
  
#to_local_time(_context = nil) ⇒ LocalTime
      32 33 34  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 32 def to_local_time(_context = nil) toLocalTime end  | 
  
#to_month ⇒ Month
      37  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 37 alias_method :to_month, :month  | 
  
#to_month_day ⇒ MonthDay
      89 90 91  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 89 def to_month_day MonthDay.of(month, day_of_month) end  | 
  
#to_zoned_date_time(context = nil) ⇒ self
      102 103 104  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 102 def to_zoned_date_time(context = nil) # rubocop:disable Lint/UnusedMethodArgument self end  | 
  
#weekend? ⇒ true, false
Determines if this time is during a weekend.
      150 151 152  | 
    
      # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 150 def weekend? ::Ephemeris.weekend?(self) end  |