You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2022/04/14 01:14:51 UTC

[GitHub] [shardingsphere] linghengqian commented on a diff in pull request #16740: IntervalShardingAlgorithm formats for LocalDateTime and Date

linghengqian commented on code in PR #16740:
URL: https://github.com/apache/shardingsphere/pull/16740#discussion_r850008155


##########
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithm.java:
##########
@@ -143,8 +143,20 @@ public String doSharding(final Collection<String> availableTargetNames, final Pr
     }
     
     private boolean hasIntersection(final Range<LocalDateTime> calculateRange, final Range<Comparable<?>> range) {
-        LocalDateTime lower = range.hasLowerBound() ? parseDateTime(range.lowerEndpoint().toString()) : dateTimeLower;
-        LocalDateTime upper = range.hasUpperBound() ? parseDateTime(range.upperEndpoint().toString()) : dateTimeUpper;
+        LocalDateTime lower;
+        if (range.hasLowerBound()) {
+            Comparable<?> lowerEndpoint = range.lowerEndpoint();
+            lower = lowerEndpoint instanceof LocalDateTime ? parseDateTime(((LocalDateTime) lowerEndpoint).format(dateTimeFormatter)) : parseDateTime(lowerEndpoint.toString());
+        } else {
+            lower = dateTimeLower;
+        }
+        LocalDateTime upper;
+        if (range.hasUpperBound()) {
+            Comparable<?> upperEndpoint = range.upperEndpoint();
+            upper = upperEndpoint instanceof LocalDateTime ? parseDateTime(((LocalDateTime) upperEndpoint).format(dateTimeFormatter)) : parseDateTime(upperEndpoint.toString());

Review Comment:
   Maybe solved. There doesn't seem to be a `Util` class that lets me use pattern matching like JDK 17.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org