亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? datetimeutils.java

?? 非常棒的java數據庫
?? JAVA
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.util;

import java.sql.Date;
import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;

import org.h2.message.Message;
import org.h2.value.Value;
import org.h2.value.ValueDate;
import org.h2.value.ValueTime;
import org.h2.value.ValueTimestamp;

/**
 * This utility class contains time conversion functions.
 */
public class DateTimeUtils {

    public static Timestamp convertTimestampToCalendar(Timestamp x, Calendar calendar) throws SQLException {
        if (x != null) {
            Timestamp y = new Timestamp(getLocalTime(x, calendar));
            // fix the nano seconds
            y.setNanos(x.getNanos());
            x = y;
        }
        return x;
    }

    public static Time cloneAndNormalizeTime(Time value) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(value);
        cal.set(1970, 0, 1);
        return new Time(cal.getTime().getTime());
    }

    public static Date cloneAndNormalizeDate(Date value) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(value);
        cal.set(Calendar.MILLISECOND, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        return new Date(cal.getTime().getTime());
    }

    public static Value convertDateToUniversal(Date x, Calendar source) throws SQLException {
        return ValueDate.get(new Date(getUniversalTime(source, x)));
    }

    public static Value convertTimeToUniversal(Time x, Calendar source) throws SQLException {
        return ValueTime.get(new Time(getUniversalTime(source, x)));
    }

    public static Value convertTimestampToUniversal(Timestamp x, Calendar source) throws SQLException {
        Timestamp y = new Timestamp(getUniversalTime(source, x));
        // fix the nano seconds
        y.setNanos(x.getNanos());
        return ValueTimestamp.getNoCopy(y);
    }

    private static long getUniversalTime(Calendar source, java.util.Date x) throws SQLException {
        if (source == null) {
            throw Message.getInvalidValueException("calendar", null);
        }
        source = (Calendar) source.clone();
        Calendar universal = Calendar.getInstance();
        source.setTime(x);
        convertTime(source, universal);
        return universal.getTime().getTime();
    }

    private static long getLocalTime(java.util.Date x, Calendar target) throws SQLException {
        if (target == null) {
            throw Message.getInvalidValueException("calendar", null);
        }
        target = (Calendar) target.clone();
        Calendar local = Calendar.getInstance();
        local.setTime(x);
        convertTime(local, target);
        return target.getTime().getTime();
    }

    private static void convertTime(Calendar from, Calendar to) {
        to.set(Calendar.YEAR, from.get(Calendar.YEAR));
        to.set(Calendar.MONTH, from.get(Calendar.MONTH));
        to.set(Calendar.DAY_OF_MONTH, from.get(Calendar.DAY_OF_MONTH));
        to.set(Calendar.HOUR_OF_DAY, from.get(Calendar.HOUR_OF_DAY));
        to.set(Calendar.MINUTE, from.get(Calendar.MINUTE));
        to.set(Calendar.SECOND, from.get(Calendar.SECOND));
        to.set(Calendar.MILLISECOND, from.get(Calendar.MILLISECOND));
    }

    public static Date convertDateToCalendar(Date x, Calendar calendar) throws SQLException {
        return x == null ? null : new Date(getLocalTime(x, calendar));
    }

    public static Time convertTimeToCalendar(Time x, Calendar calendar) throws SQLException {
        return x == null ? null : new Time(getLocalTime(x, calendar));
    }

    public static java.util.Date parseDateTime(String original, int type, int errorCode) throws SQLException {
        String s = original;
        if (s == null) {
            return null;
        }
        try {
            int timeStart = 0;
            TimeZone tz = null;
            if (type == Value.TIME) {
                timeStart = 0;
            } else {
                timeStart = s.indexOf(' ') + 1;
                if (timeStart <= 0) {
                    // ISO 8601 compatibility
                    timeStart = s.indexOf('T') + 1;
                }
            }

            int year = 1970, month = 1, day = 1;
            if (type != Value.TIME) {
                // support +year
                if (s.startsWith("+")) {
                    s = s.substring(1);
                }
                // start at position 1 to support -year
                int s1 = s.indexOf('-', 1);
                int s2 = s.indexOf('-', s1 + 1);
                if (s1 <= 0 || s2 <= s1) {
                    throw Message.getSQLException(errorCode, new String[] { s, "format yyyy-mm-dd" });
                }
                year = Integer.parseInt(s.substring(0, s1));
                month = Integer.parseInt(s.substring(s1 + 1, s2));
                int end = timeStart == 0 ? s.length() : timeStart - 1;
                day = Integer.parseInt(s.substring(s2 + 1, end));
            }
            int hour = 0, minute = 0, second = 0, nano = 0;
            if (type != Value.DATE) {
                int s1 = s.indexOf(':', timeStart);
                int s2 = s.indexOf(':', s1 + 1);
                int s3 = s.indexOf('.', s2 + 1);
                if (s1 <= 0 || s2 <= s1) {
                    throw Message.getSQLException(errorCode, new String[] { s, "format hh:mm:ss" });
                }

                if (s.endsWith("Z")) {
                    s = s.substring(0, s.length() - 1);
                    tz = TimeZone.getTimeZone("UTC");
                } else {
                    int timezoneStart = s.indexOf('+', s2 + 1);
                    if (timezoneStart < 0) {
                        timezoneStart = s.indexOf('-', s2 + 1);
                    }
                    if (timezoneStart >= 0) {
                        String tzName = "GMT" + s.substring(timezoneStart);
                        tz = TimeZone.getTimeZone(tzName);
                        if (!tz.getID().equals(tzName)) {
                            throw Message.getSQLException(errorCode, new String[] { s, tz.getID() + " <>" + tzName });
                        }
                        s = s.substring(0, timezoneStart).trim();
                    }
                }

                hour = Integer.parseInt(s.substring(timeStart, s1));
                minute = Integer.parseInt(s.substring(s1 + 1, s2));
                if (s3 < 0) {
                    second = Integer.parseInt(s.substring(s2 + 1));
                } else {
                    second = Integer.parseInt(s.substring(s2 + 1, s3));
                    String n = (s + "000000000").substring(s3 + 1, s3 + 10);
                    nano = Integer.parseInt(n);
                }
            }
            if (hour < 0 || hour > 23) {
                throw new IllegalArgumentException("hour: " + hour);
            }
            long time;
            try {
                time = getTime(false, tz, year, month, day, hour, minute, second, type != Value.TIMESTAMP, nano);
            } catch (IllegalArgumentException e) {
                // special case: if the time simply doesn't exist, use the lenient version
                if (e.toString().indexOf("HOUR_OF_DAY") > 0) {
                    time = getTime(true, tz, year, month, day, hour, minute, second, type != Value.TIMESTAMP, nano);
                } else {
                    throw e;
                }
            }
            switch (type) {
            case Value.DATE:
                return new java.sql.Date(time);
            case Value.TIME:
                return new java.sql.Time(time);
            case Value.TIMESTAMP: {
                Timestamp ts = new Timestamp(time);
                ts.setNanos(nano);
                return ts;
            }
            default:
                throw Message.getInternalError("type:" + type);
            }
        } catch (IllegalArgumentException e) {
            throw Message.getSQLException(errorCode, new String[]{original, e.toString()}, e);
        }
    }

    private static long getTime(boolean lenient, TimeZone tz, int year, int month, int day, int hour, int minute, int second, boolean setMillis, int nano) {
        Calendar c;
        if (tz == null) {
            c = Calendar.getInstance();
        } else {
            c = Calendar.getInstance(tz);
        }
        c.setLenient(lenient);
        if (year <= 0) {
            c.set(Calendar.ERA, GregorianCalendar.BC);
            c.set(Calendar.YEAR, 1 - year);
        } else {
            c.set(Calendar.YEAR, year);
        }
        c.set(Calendar.MONTH, month - 1); // january is 0
        c.set(Calendar.DAY_OF_MONTH, day);
        c.set(Calendar.HOUR_OF_DAY, hour);
        c.set(Calendar.MINUTE, minute);
        c.set(Calendar.SECOND, second);
        if (setMillis) {
            c.set(Calendar.MILLISECOND, nano / 1000000);
        }
        return c.getTime().getTime();
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲国产伦久久久久久久| 久久99日本精品| 国产偷v国产偷v亚洲高清 | 26uuu久久综合| 日韩一区二区三区在线视频| 欧美色中文字幕| 欧美日韩视频在线观看一区二区三区 | 亚洲成人av中文| 一区二区国产盗摄色噜噜| 亚洲色图欧美激情| 亚洲一区二区三区中文字幕| 亚洲一区二区三区四区在线观看 | 午夜成人免费电影| 七七婷婷婷婷精品国产| 国产在线播放一区三区四| 国产一区二区三区视频在线播放| 国产一区二区91| 从欧美一区二区三区| 色一区在线观看| 欧美年轻男男videosbes| 日韩欧美国产小视频| 欧美精品一区二区在线播放 | 94-欧美-setu| 欧美日韩视频在线第一区| 欧美一区二区成人6969| 欧美日韩精品一区二区在线播放| 欧美日韩黄色影视| 欧美精品一区二区三区视频| 国产精品美女www爽爽爽| 亚洲一区在线观看视频| 经典三级视频一区| 99re这里只有精品视频首页| 在线不卡a资源高清| 久久精品视频免费观看| 一区二区三区精品| 婷婷综合在线观看| 成人美女在线视频| 欧美一级片在线观看| 最近中文字幕一区二区三区| 丝袜美腿亚洲一区| 成人精品国产福利| 欧美一三区三区四区免费在线看| 国产视频在线观看一区二区三区| 亚洲综合区在线| 国产毛片精品国产一区二区三区| 91麻豆自制传媒国产之光| 日韩一级成人av| 亚洲激情图片一区| 国产99精品视频| 欧美一级一级性生活免费录像| 国产精品乱码人人做人人爱| 热久久一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 日韩欧美国产麻豆| 亚洲成av人片一区二区| 99久久伊人精品| 久久综合色天天久久综合图片| 亚洲h动漫在线| 91美女在线看| 日本一区二区成人| 极品美女销魂一区二区三区 | www激情久久| 日韩**一区毛片| 欧美三级视频在线| 亚洲裸体在线观看| av一本久道久久综合久久鬼色| 久久久亚洲国产美女国产盗摄 | 久久精品一区二区| 久久国产尿小便嘘嘘尿| 7777精品久久久大香线蕉| 一区二区三区成人| 日本道色综合久久| 亚洲人成人一区二区在线观看| 成人免费视频一区| 国产亚洲精久久久久久| 国产成人在线观看免费网站| 精品卡一卡二卡三卡四在线| 麻豆一区二区99久久久久| 正在播放一区二区| 美腿丝袜亚洲一区| 欧美成人精品福利| 国内偷窥港台综合视频在线播放| 精品日本一线二线三线不卡| 蜜桃视频第一区免费观看| 欧美一区二区在线不卡| 奇米777欧美一区二区| 26uuu精品一区二区在线观看| 黄一区二区三区| 久久你懂得1024| 丁香激情综合国产| 亚洲欧洲一区二区三区| 91福利在线导航| 午夜伦理一区二区| 欧美videos大乳护士334| 精品一区二区日韩| 中文字幕+乱码+中文字幕一区| 成人黄色小视频在线观看| 亚洲视频资源在线| 8v天堂国产在线一区二区| 国产精品白丝av| 亚洲欧美一区二区三区孕妇| 欧美在线观看禁18| 男人操女人的视频在线观看欧美| 久久伊人中文字幕| 99久久免费精品高清特色大片| 亚洲成人激情综合网| 精品日韩99亚洲| 色综合天天狠狠| 欧美aaa在线| 国产精品视频线看| 欧美喷水一区二区| 国产激情一区二区三区四区| 一区二区三区在线视频免费 | 国产日韩av一区二区| 色妞www精品视频| 韩国av一区二区三区| 亚洲激情av在线| 久久人人97超碰com| 欧美日韩五月天| 国产不卡免费视频| 天天操天天色综合| 国产精品久久久久影院老司| 欧美一区二区视频在线观看2022| 丁香啪啪综合成人亚洲小说| 天堂午夜影视日韩欧美一区二区| 国产精品女主播av| 日韩一二在线观看| 在线免费观看日本一区| 国产成人精品一区二区三区网站观看| 亚洲一区二区3| 国产精品久久综合| 精品国产免费久久| 欧美日韩国产一二三| 91免费看视频| 国产精品一区免费视频| 日本中文一区二区三区| 亚洲精品视频在线看| 久久久午夜精品| 91麻豆精品91久久久久同性| 欧洲av在线精品| 色综合天天综合色综合av| 成人免费观看视频| 激情成人午夜视频| 精品一区二区久久| 久久精品久久综合| 蜜臀av一区二区在线观看| 亚洲成人福利片| 亚洲美女一区二区三区| 最新中文字幕一区二区三区| 国产亚洲精品久| 久久欧美中文字幕| 国产天堂亚洲国产碰碰| 久久嫩草精品久久久精品| 精品91自产拍在线观看一区| 欧美变态凌虐bdsm| 精品国精品国产尤物美女| 欧美电影免费观看高清完整版在线 | 国产欧美视频在线观看| 国产喷白浆一区二区三区| 国产日韩欧美电影| 日本一二三不卡| 国产精品久久久久久亚洲伦| 国产精品黄色在线观看| 亚洲欧洲日产国产综合网| 亚洲女性喷水在线观看一区| 一区二区三区四区中文字幕| 亚洲激情六月丁香| 婷婷激情综合网| 麻豆国产一区二区| 国产成人午夜视频| www.亚洲免费av| 色噜噜狠狠色综合中国| 欧美日韩国产a| 精品少妇一区二区三区日产乱码| 26uuu精品一区二区在线观看| 国产日韩精品一区二区浪潮av| 国产精品丝袜一区| 亚洲激情六月丁香| 日韩av一级电影| 国产成人综合在线播放| 色综合久久综合中文综合网| 7878成人国产在线观看| 亚洲精品一区二区在线观看| 国产精品国模大尺度视频| 亚洲国产一区二区三区| 精品综合免费视频观看| 色悠悠久久综合| 日韩精品一区二区三区在线播放 | 午夜伊人狠狠久久| 国产在线国偷精品免费看| 91香蕉视频黄| 日韩久久免费av| 亚洲日本免费电影| 久久国产人妖系列| 色狠狠av一区二区三区| 久久久综合精品| 亚洲影视在线播放| 国产一区二区调教| 欧美日精品一区视频| 国产欧美一区二区精品秋霞影院 |