Ⅰ java datetime類在哪個jar包中怎麼引入
雖然網上有什麼date4j,但是jar太糾結了,先給出源碼,可以繼承到自己的util包中,作為一個資深程序員,我相信都有不少好的util工具類,我也希望經過此次分享,能帶動技術大牛們能分享出自己的好用的工具類。
接下來再來看看如何使用:
獲取當前系統時間:DateTime.now(); 返回的是一個DateTime對象。
一個DateTime對象可以轉換成我們需要的各種日期格式,
例如:java.util.date
DateTime.now().toDate();
大家可能也覺得這個寫法還沒有直接new Date();來得快對不對。
那麼有很多情況是一個字元串,需要轉換成java.util.Date對象,我們該怎麼做呢?
new DateTime("2014-10-29").toDate();
當然也可以是這樣的
new DateTime("2014-10-29 15:19:23").toDate();
這里的只是基礎用法,還有一些情況是將java.util.Date轉換成字元串格式的
可能大家一般會用SimpleDateFormat,但是這個太費事了,我們看看簡單的辦法。
new DateTime(new Date()).toDateString();
返回的是 2014-10-29 這種格式的字元串
new DateTime(new Date()).toDateTimeString();
返回的是2014-10-29 15:23:23 這種格式的字元串
如果我們需要類似 2014年10月29日 或 2014年10月29日 15時23分34秒 這種格式的怎麼辦呢
new DateTime(new Date()).toDateTimeString("yyyy年MM月dd日");
new DateTime(new Date()).toDateTimeString("yyyy年MM月dd日 hh時mm分ss秒");
這樣就可以了!
來自:http://blog.csdn.net/yakson/article/details/40586639
Ⅱ 在java的程序里date類型怎麼比較大小
兩個Date類型的變數可以通過compareTo方法來比較。此方法的描述是這樣的:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小於 0 的值;如果此 Date 在 Date 參數之後,則返回大於 0 的值。
實際上比較的是自1970 年 1 月 1 日 00:00:00 GMT以來的毫秒數。毫秒數越大的時間越大。
String DateStr1 = "2011-10-1 10:20:16";
String DateStr2 = "2011-10-07 15:50:35";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateTime1 = dateFormat.parse(DateStr1);
Date dateTime2 = dateFormat.parse(DateStr2);
int i = dateTime1.compareTo(dateTime2);
System.out.println(i < 0);
ps:感覺別人說的很清楚明了。學習!!!
Ⅲ Java date 時間戳 怎麼轉換為 C# 時間戳
java的datetime類型用c#實現就是:
String timeStamp = GetTimestamp(DateTime.Now);
時間戳是從1970年0時0分0秒開始到現在的秒數.使用它來獲得的是一個INT值,儲存在資料庫里只要使用INT格式就可以了,方便資料庫進行排序,搜索,而且比datetime格式更節省資料庫空間。
通常用以下方法轉換實現:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace test.Controllers
{
public class TimeStampController : Controller
{
//
// GET: /TimeStamp/
public ActionResult Index()
{
ViewBag.TimeStamp = ConvertDateTimeInt(DateTime.Now);
return View("TimeStamp");
}
public ActionResult GetTimeView(string timeStamp)
{
ViewBag.TimeStamp = GetTime(timeStamp);
return View("TimeStamp");
}
/// <summary>
/// 時間戳轉為C#格式時間
/// </summary>
/// <param name="timeStamp">Unix時間戳格式</param>
/// <returns>C#格式時間</returns>
public static DateTime GetTime(string timeStamp)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(lTime);
return dtStart.Add(toNow);
}
/// <summary>
/// DateTime時間格式轉換為Unix時間戳格式
/// </summary>
/// <param name="time"> DateTime時間格式</param>
/// <returns>Unix時間戳格式</returns>
public static int ConvertDateTimeInt(System.DateTime time)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
return (int)(time - startTime).TotalSeconds;
}
}
}
Ⅳ java中如何計算出兩個日期之間相差多少天
思路就是根據它們相差的毫秒數除以每天的毫秒數(60*60*24*1000),代碼如下:
public static void main(String[] args) throws ParseException {
String date1="1987-01-01";
String date2="2010-01-01";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sdf.parse(date1);
Date d2=sdf.parse(date2);
long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);
System.out.println("1987-01-01 與 2010-01-01 相隔 "+daysBetween+" 天");
}
運行結果如下:
(4)javadatetimetoint擴展閱讀:
Java使用以下三種方法來比較兩個日期:
1、使用 getTime() 方法獲取兩個日期(自1970年1月1日經歷的毫秒數值),然後比較這兩個值。
2、使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
3、使用 compareTo() 方法,它是由 Comparable 介面定義的,Date 類實現了這個介面。
SimpleDateFormat 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何用戶自定義日期時間格式來運行
例如:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
這一行代碼確立了轉換的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是時、分、秒。
注意:有的格式大寫,有的格式小寫,例如 MM 是月份,mm 是分;HH 是 24 小時制,而 hh 是 12 小時制。
以上實例編譯運行結果如下:
當前時間為: 2018-09-14 10:16:34
菜鳥教程-Java 日期時間
Ⅳ java計算農歷日期
import java.util.Scanner;public class PrintCalendar { /**
* @param args
*/
public static void main(String[] args) {
System.out.println("******************歡 迎 使 用 萬 年 歷******************");
Scanner input = new Scanner(System.in);
System.out.print("\n請選擇年份: ");
int year = input.nextInt();
System.out.print("\n請選擇月份: ");
int month = input.nextInt();
System.out.println(); int days = 0; // 存儲當月的天數
boolean isRn;
/* 判斷是否是閏年 */
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { // 判斷是否為閏年
isRn = true; // 閏年
} else {
isRn = false;// 平年
} /* 計算輸入的年份之前的天數 */
int totalDays = 0;
for (int i = 1900; i < year; i++) {
/* 判斷閏年或平年,並進行天數累加 */
if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) { // 判斷是否為閏年
totalDays = totalDays + 366; // 閏年366天
} else {
totalDays = totalDays + 365; // 平年365天
}
} /* 計算輸入月份之前的天數 */
int beforeDays = 0;
for (int i = 1; i <= month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isRn) {
days = 29;
} else {
days = 28;
}
break;
default:
days = 30;
break;
}
if (i < month) {
beforeDays = beforeDays + days;
}
}
totalDays = totalDays + beforeDays; // 距離1900年1月1日的天數 /* 計算星期幾 */
int firstDayOfMonth; // 存儲當月第一天是星期幾:星期日為0,星期一~星期六為1~6
int temp = 1 + totalDays % 7; // 從1900年1月1日推算
if (temp == 7) { // 求當月第一天
firstDayOfMonth = 0; // 周日
} else {
firstDayOfMonth = temp;
} /* 輸出日歷 */
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++) {
System.out.print("\t"); // 輸出空格
}
for (int i = 1; i <= days; i++) {
System.out.print(i + "\t");
if ((totalDays + i - 1) % 7 == 5) { // 如果當天為周六,輸出換行
System.out.println();
}
}
}
}
Ⅵ java怎麼比較兩個日期(年和月)的大小
你好,沒有這樣的函數。不過我可以給你一段比較的代碼。希望對你有幫助。代碼如下:import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; /**
*
* @author hp
*/
public class test { public static void main(String args[]) {
int i= compare_date("2009-11-12 15:21", "2009-12-11 09:59");
System.out.println("i=="+i);
} public static int compare_date(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2後");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
}
Ⅶ java 求兩個日期差幾個月
import java.util.Date;
import java.util.Calendar;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.io.PrintStream;
public class DateDiffMonth{
public static void main(String [] argv) throws Exception {
System.out.println(getMonthDiff("1900-10-21", "1901-01-01"));
}
/**
* 得到兩日期相差幾個月
*
* @param String
* @return
*/
public static long getMonthDiff(String startDate, String endDate) throws ParseException {
long monthday;
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date startDate1 = fmt.parse(startDate);
Calendar starCal = Calendar.getInstance();
starCal.setTime(startDate1);
int sYear = starCal.get(Calendar.YEAR);
int sMonth = starCal.get(Calendar.MONTH);
int sDay = starCal.get(Calendar.DAY_OF_MONTH);
Date endDate1 = fmt.parse(endDate);
Calendar endCal = Calendar.getInstance();
endCal.setTime(endDate1);
int eYear = endCal.get(Calendar.YEAR);
int eMonth = endCal.get(Calendar.MONTH);
int eDay = endCal.get(Calendar.DAY_OF_MONTH);
monthday = ((eYear - sYear) * 12 + (eMonth - sMonth));
//這里計算零頭的情況,根據實際確定是否要加1 還是要減1
if (sDay < eDay) {
monthday = monthday + 1;
}
return monthday;
}
}
天以下,要自己添加判斷
Ⅷ 在java的程序里date類型怎麼比較大小呀
有兩個方法:
方法一:
兩個Date類型的變數可以通過compareTo方法來比較。此方法的描述是這樣的:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小於 0 的值;如果此 Date 在 Date 參數之後,則返回大於 0 的值。
(8)javadatetimetoint擴展閱讀:
Date類可以在java.util包中找到,用一個long類型的值表示一個指定的時刻。它的一個有用的構造函數是Date(),它創建一個表示創建時刻的對象。
getTime()方法返回Date對象的long值。在下面的程序中,我使用Date()構造函數創建一個表示程序運行時刻的對象,並且利用getTime()方法找到這個日期代表的毫秒數量:
import java.util.*;
public class Now {
public static void main(String[] args) {
Date now = new Date();
long nowLong = now.getTime();
System.out.println("Value is " + nowLong);
}
}