目次
Stringbuild クラス
構築メソッド
append
reverse
Date クラス
getTime
setTime
DateFormat
SimpleDateFormat
指定されたカレンダー フィールドを表す、
get
getTimeZone
add
set
练习
定义一个方法, 使用StringBuild将数组转换为 [元素1,元素2...] 的格式
计算一个人活了多少天
计算指定年份的2月有多少天
ホームページ Java &#&チュートリアル Java で Stringbuild、Date、Calendar クラスを使用する方法

Java で Stringbuild、Date、Calendar クラスを使用する方法

May 22, 2023 pm 04:52 PM
java date stringbuild

Stringbuild クラス

String クラスのオブジェクトの内容は変更できないため、結合されるたびに新しい String オブジェクトが構築されますが、これには時間がかかり、メモリ領域の無駄になります

現時点では java を使用する必要があります提供された StringBuild クラスがこの問題を解決します

StringBuilder は可変文字列とも呼ばれ、String と同様の文字列バッファであり、コンテナとみなすことができます。多くの文字列をコンテナ内に保持できます

変数とは、StringBuilder オブジェクトのコンテンツが変数であることを意味します

構築メソッド

public StringBuilder():空のバッファーを作成します

public StringBuilder(String srt): str

//public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
StringBuilder sb = new StringBuilder();
System.out.println("sb:" + sb);
System.out.println("sb.length():" + sb.length());

//public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
StringBuilder sb2 = new StringBuilder("hello");
System.out.println("sb2:" + sb2);
System.out.println("sb2.length():" + sb2.length());
ログイン後にコピー

append

public StringBuilder append( Object obj) : 任意のタイプのデータをコンテナに追加し、文字列に変換します。

// 链式编程, 链式编程返回结果 看最后调用的方法
StringBuilder abc = new StringBuilder(stringBuilder.append(10).append("abc").append(10.1).append(new Object()).toString());
System.out.println("abc = " + abc);
ログイン後にコピー

reverse

public StringBuilding reverse(): バッファを反転します。 data

String string = new StringBuilder(abc).reverse().toString();
System.out.println(string);
ログイン後にコピー

Date クラス

java.util.Date ミリ秒単位の精度で特定の瞬間を表します

構築メソッド

public Date(): 現在の日付オブジェクト (プログラムの実行時から時刻原点までの経過ミリ秒値) が Date オブジェクトに変換され、Date オブジェクトが割り当てられ、このオブジェクトを初期化して、割り当てられた時刻 (ミリ秒単位の精度)。

public Date(long date): 指定されたパラメータのミリ秒値の日付を Date オブジェクトに変換し、Date オブジェクトを割り当て、このオブジェクトを初期化します

時刻の原点 : 1970 年 1 月 1 日 00:00:00
中国は東 8 地区にあります。厳密に言うと、1970 年 1 月 1 日 00:08:00
1s = 1000ms

public static void main(String[] args) {
	// 创建日期对象,把当前的时间
	System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020
	// 创建日期对象,把当前的毫秒值转成日期对象
	System.out.println(new Date(0)); // Thu Jan 01 08:00:00 CST 1970
}
ログイン後にコピー
です。

getTime

long getTime(): 日付オブジェクトのミリ秒値を取得します

// 获取从 时间原点 到 当前日期 的毫秒值
long time = nowTime.getTime();
System.out.println(time);
ログイン後にコピー

setTime

void setTime(long time): ミリ秒値を設定します

 // 设置偏移毫秒值为0, 即时间原点
nowTime.setTime(0);
System.out.println(nowTime);
ログイン後にコピー

DateFormat

java.text.DateFormat は日付/時刻書式設定サブクラスの抽象クラスであり、このクラスを使用できます。日付とテキストの間の変換。つまり、Date オブジェクトと String オブジェクトの間で相互に変換できます。

SimpleDateFormat

DateFormat は抽象クラスであり、直接使用できないため、一般的に使用されるサブクラス java.text.SimpleDateFormat が必要です。
このクラスには、書式設定または解析の標準を指定するパターン (形式) が必要です。

構築メソッド

public SimpleDateFormat(): デフォルトのモードとロケールの日付形式シンボルを使用して SimpleDateFormat を構築します。

デフォルトの形式は次のとおりです: (年)-(月)-(日) (午前/午後)xx:xx

public SimpleDateFormat(String pattern ) : 指定されたパターンとデフォルトのロケールの日付形式記号を使用して SimpleDateFormat を構築します。

パラメータ パターンは、日付と時刻のカスタム形式を表す文字列です。

一般的に使用される形式ルールは次のとおりです。

# #s 注: 形式ルールの詳細については、SimpleDateFormat クラスの API ドキュメントを参照してください。
識別文字 (大文字と小文字を区別) 意味
y
MM
d
H時間
m
Seconds

日付オブジェクトを文字列に変換します

public String format(Date date)

: 日付オブジェクトを渡し、書式設定された文字列を返します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>// 将当前日期 转换为 x年x月x日 xx:xx:xx Date nowTime = new Date(); DateFormat df = new SimpleDateFormat(&quot;yyyy年MM月dd日 HH:mm:ss E&quot;); System.out.println(df.format(nowTime));</pre><div class="contentsignin">ログイン後にコピー</div></div>文字列を日付オブジェクトに変換

public Date parse(文字列ソース)

文字列を渡して日付オブジェクトを返す<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>// 获取sDate所代表的时间的毫秒值 String sDate = &quot;1949-10-01&quot;; DateFormat df2 = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;); // parse 若无法解析字符串会抛出异常 ParseException Date date = df2.parse(sDate); long time = date.getTime(); System.out.println(time);</pre><div class="contentsignin">ログイン後にコピー</div></div>Calendar クラス

java.util.Calendar

Calendar カレンダー クラス。多くの Date メソッドを置き換えます。これは抽象クラスですが、オブジェクトを作成するための静的メソッドを提供し、多くの静的属性も提供します

月 0 ~ 11 は 1 月~12 月を表します
海外では週の最初の日は日曜日です


getInstance

パブリック静的カレンダーgetInstance()

: デフォルトのタイムゾーンとロケールを使用してカレンダーを取得します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Calendar c = Calendar.getInstance(); System.out.println(c);</pre><div class="contentsignin">ログイン後にコピー</div></div>静的属性とそれに対応するフィールド

指定されたカレンダー フィールドを表す、

クラス名.プロパティ名

を使用して呼び出します:

フィールド値YEARMONTHDAY_OF_MONTHHOURHOUR_OF_DAYMINUTESECOND#DAY_OF_WEEKWeek Day in (曜日、日曜日は 1、-1 を使用できます)

get

int get(int field): 返回给定日历字段的值

int year = c.get(Calendar.YEAR);
// 0-11表示月份 需要+1
int month = c.get(Calendar.MONTH) + 1;
// DATE 和 DAY_OF_MONTH 的值是一样的
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
ログイン後にコピー

getTimeZone

TimeZone getTimeZone() 获取时区

TimeZone timeZone = c.getTimeZone();
System.out.println(timeZone);
ログイン後にコピー

add

void add(int field, int amount): 根据日历规则 为给定的字段添加或减去指定的时间量

// 将日历设置为2000.5.1, 当前时间为2023.4.5
// add方法设置偏移量
c.add(Calendar.YEAR, -23);
c.add(Calendar.MONTH, 1);
c.add(Calendar.DATE, -4);
System.out.println(c.get(Calendar.YEAR)+"."+(c.get(Calendar.MONTH) + 1)+"."+c.get(Calendar.DAY_OF_MONTH));
ログイン後にコピー

set

void set(int field, int value): 将给定的日历字段设置为给定值

void set(int year, int month, int date) 直接设置年月日为指定值

// set(int field, int value)方法 将日历设置为2001.4.2
c.set(Calendar.YEAR, 2001);
c.set(Calendar.MONTH, 3);
c.set(Calendar.DAY_OF_MONTH, 2);
System.out.println(c.get(Calendar.YEAR)+"."+(c.get(Calendar.MONTH) + 1)+"."+c.get(Calendar.DAY_OF_MONTH));

// set(int year, int month, int date)方法 将日历设置为2003.10.1
c.set(2003, 9, 1);
System.out.println(c.get(Calendar.YEAR)+"."+(c.get(Calendar.MONTH) + 1)+"."+c.get(Calendar.DAY_OF_MONTH));
ログイン後にコピー

getTime

Date getTime(): 将日历对象转为日期对象

Date date = c.getTime();
System.out.println(date);
ログイン後にコピー

练习

定义一个方法, 使用StringBuild将数组转换为 [元素1,元素2...] 的格式

public class Demo {
    public static void main(String[] args) {
        int[] arr = {3,765,8234,1,23};
        System.out.println(arrayConcatToSting(arr));
    }

    public static String arrayConcatToSting(int[] arr) {
        StringBuilder stringBuilder1 = new StringBuilder("[");
        for (int i = 0; i < arr.length; i++) {
            stringBuilder1.append(arr[i]);
            if (i < arr.length - 1) {
                stringBuilder1.append(", ");
            } else if (i == arr.length - 1){
                stringBuilder1.append("]");
            }
        }
        return stringBuilder1.toString();
    }

}
ログイン後にコピー

计算一个人活了多少天

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入您的生日(年.月.日): ");
        System.out.println("您活了"+howLongHaveYouLived(sc.nextLine())+"天");
    }

    public static long howLongHaveYouLived (String str) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy.MM.dd");
        Date birthDay = df.parse(str);
        long birthDayTime = birthDay.getTime();
        long nowTime = new Date().getTime();
        return (nowTime - birthDayTime) / 1000 / 60 / 60 /24;
    }
}
ログイン後にコピー

计算指定年份的2月有多少天

import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        // 计算指定年份的2月有多少天
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入您要指定的年份: ");
        int inputYear = sc.nextInt();
        System.out.println(inputYear+"年的2月有"+getDay(inputYear)+"天");
    }

    public static int getDay(int year) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, 2, 1);
        calendar.add(Calendar.DATE, -1);
        return calendar.get(Calendar.DATE);
    }
}
ログイン後にコピー

以上がJava で Stringbuild、Date、Calendar クラスを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Java の平方根のガイド。ここでは、Java で平方根がどのように機能するかを、例とそのコード実装をそれぞれ示して説明します。

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

See all articles
意味
Month (0 から始まり、1 としても使用可能)
月の日 (数字)
時間 (12 時間形式)
時間 (24 時間形式)